您的SQL语法有错误;查看手册,了解在'AND`user_id` = 1'附近使用的正确语法

时间:2014-04-16 19:24:55

标签: php mysql sql syntax

我知道有很多像这样的问题,但它们似乎都没有用,我找不到我的语法错误!

mysql_query("SELECT `type` FROM `poststuff` WHERE `post_id` = 7 AND `user_id` = 1");

任何帮助都会很棒! (顺便说一下,标题上有错误) 完整代码(适合你的人 - , - )

function update_post($post_id, $user_id) {
$result = mysql_result(mysql_query("SELECT `type` FROM `poststuff` WHERE `post_id` = $post_id AND `user_id` = $user_id"), 0) or die(mysql_error());
if ($result !== null) {
if ($result === "no" ) {
$actual_count = mysql_result(mysql_query("SELECT `$result` FROM `posts` WHERE `post_id` = $post_id"), 0);
mysql_query("UPDATE `posts` SET `$actual_count` = $actual_count+1 WHERE `post_id` = $post_id AND `type` = 'no'");
}

1 个答案:

答案 0 :(得分:2)

您发布的SQL文本中似乎没有问题。我们建议您确认它是 AND 关键字之前的有效空白字符。

根据错误消息,我怀疑查询中的AND关键字前面有一个无效字符。

如果您运行的查询在AND关键字前面有逗号或其他非空白字符,则会出现这种错误。

例如,运行此查询:

SELECT `type` FROM `poststuff` WHERE `post_id` = 7,AND `user_id` = 1
                                                  ^

会导致出现错误:

... error in your SQL syntax; ... near 'AND `user_id` = 1'

如果在等号后面没有值,则只会报告相同的错误,并且只有空格。例如,以下查询将返回相同的错误:

SELECT `type` FROM `poststuff` WHERE `post_id` = AND `user_id` = 1
                                                ^