【问题标题】:check the manual that corresponds to your MySQL server version [duplicate]检查与您的 MySQL 服务器版本相对应的手册 [重复]
【发布时间】:2014-01-29 02:54:58
【问题描述】:
<?php include 'config.php';


    $user_id = 1;
    $postid = 9;
    $content = "sdfsdfsdfsdf";
    $date = '24';
    $category_id = 4;



$result = $db->query("INSERT INTO post_items(`post_id`,`content`,`date`,`user_id`,`category_id`) 
    VALUES ('".$postid.", '".$content."', '".$date."', '".$user_id."', '".$category_id."')");

if($result) { 
    echo "hey";
}else{
    echo $db->error;
}



?>

请帮忙,我已经尝试了 3-4 小时但没有运气.. 我很确定我的所有列都是正确的,我现在很困惑如何使用 sql 语法,因为我去了 MySQL 可视化编辑器,它给了我不同的插入 sql 查询。

【问题讨论】:

  • 请不要转发问题。
  • 不要将字符串直接传递给$db-&gt;query(),而是将其存储到一个变量中,您可以从该变量echo $query_var; 以查看它包含的内容以及如何调试它。
  • 这不是整个 MySQL 错误。之后说什么?它应该指向一个错误字符检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法以在附近使用...

标签: php mysql sql database mysqli


【解决方案1】:

$postId 后面缺少 '

VALUES ('".$postid.", '".$content."', '".$date."', '".$user
--------------------^

【讨论】:

    【解决方案2】:
    VALUES ('".$postid.", '".$con ...
            ^           ^^^
    

    您似乎遗漏了一个单引号。应该是:

    VALUES ('".$postid."', '".$con ...
                        ^
                     add this
    

    这是您应该更喜欢参数化查询的另一个很好的理由(除了已经很好的避免 SQL 注入攻击)。它们更具可读性,因此更易于调试。

    【讨论】:

    • 大声笑,别把这个可怜的家伙弄糊涂了;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多