插入数据库时出现错误。
代码:
dbquery("INSERT INTO site_news_comments (articleid,title,short,comment,timestamp,userid,main,type,topstory) VALUES ($article,'".clean($commentss['title'])."','','".mysql_real_escape_string($_POST['comment'])."',current_timestamp,'".USER_ID."','0','".$commentss['type']."','')");
忽略dbquery,与mysql_query完全一样。
我收到的错误是:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''title','short','
不知道为什么会引发此错误!
教一个人如何钓鱼。
如果查询失败,那么您应该做的第一件事就是回显您要发送的查询:
$sql = "INSERT INTO site_news_comments (articleid,title,short,comment,timestamp,userid,main,type,topstory) VALUES ($article,'".clean($commentss['title'])."','','".mysql_real_escape_string($_POST['comment'])."',current_timestamp,'".USER_ID."','0','".$commentss['type']."','')"; echo $sql;
通常,最终查询到底出了什么问题,这是很明显的。要特别注意查询中的动态内容,通常要注意MySQL抱怨的区域。
如果看起来还可以,那么您会寻找可能需要转义的单词,例如保留的单词。
结论
看了代码mysql之后,我不得不得出结论,问题出在哪里$article,它会在您的查询中引起问题。为了以防万一,您可能也应该转义它:)
$article
推荐
您应该了解PDO / mysqli并使用准备好的语句:
// PDO example $stmt = $db->prepare('INSERT INTO site_news_comments (articleid, title, short, comment, timestamp, userid, main, type, topstory) VALUES (:article, :title, :short, :comment, CURRENT_TIMESTAMP, :user, :main, :type, :topstory)'); $stmt->execute(array( ':article' => $article, ':title' => $commentss['title'], ':short' => '', ':comment' => $_POST['comment'], ':user' => USER_ID, ':main' => 0, ':type' => $commentss['type'], ':topstory' => '', ));