“第1行的SQL语法错误”但似乎在我的查询中

时间:2014-08-12 06:23:30

标签: php mysql mysql-error-1064

我收到此错误: 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在update_idupdate_whenupdate_titleupdate_text,{{1}附近使用正确的语法})VALUES'在第1行

我搜索了这个网站和其他许多人的解决方案,我似乎无法找到它。我已经尝试了几乎所有我能找到的建议,现在是时候看看我是否遗漏了一些明显的东西(过去3天)。请查看我的代码,看看有什么问题。我用随机echo =" 1&#34 ;;测试了代码。在我的代码中找到它破坏的地方,我将从那里发布。非常感谢,如果您需要更多我发布的内容,请随时提出。

update_who

再次感谢!!

编辑:好的,我的代码现在读了(感谢Rakesh Sharma):

$update = mysql_query("INSERT INTO `cbhof_news` SET (`update_id`, `update_when`, `update_title`, `update_text`, `update_who`) VALUES (NULL, `$when`, `$title`, `$text`, `$who`") or die(mysql_error());
echo "1"; //this one is not showing yet, so I know its borked here.
if (mysql_query($update)){
        //header('location: news.php');
        echo "Posted! <br /><br />$title - by: $who<br />$text";
    }else{
        die('We are sorry, this entry could not be created. <br />Error: ' . mysql_errno() . ': ' . mysql_error());
    }
}

但现在我看到数据库中有多个条目。首先它只插入一个,第二个插入两个,然后是四个,然后是八个....

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

尝试在查询变量上使用单引号并删除SET关键字也正确关闭查询

$update = mysql_query("INSERT INTO `cbhof_news` (`update_id`, `update_when`, `update_title`, `update_text`, `update_who`) VALUES ('', '$when', '$title', '$text', '$who')") or die(mysql_error());

有关更多插入查询: - http://dev.mysql.com/doc/refman/5.6/en/insert.html

使用SET您需要查询: -

INSERT INTO table SET col_name = value,col_name = value,col_name = value,... 

答案 1 :(得分:0)

如果要插入新行

,请不要在查询中使用SET
$update = mysql_query("INSERT INTO `cbhof_news` (`update_id`, `update_when`, `update_title`, `update_text`, `update_who`) VALUES (NULL, '$when', '$title', '$text', '$who'") or die(mysql_error());

答案 2 :(得分:0)

只需删除SET关键字即可。

$update = mysql_query("INSERT INTO `cbhof_news` (`update_id`, `update_when`, `update_title`, `update_text`, `update_who`) VALUES (NULL, `$when`, `$title`, `$text`, `$who`") or die(mysql_error());

并确保正确转义您的值以防止sql注入。

答案 3 :(得分:0)

INSERT INTO cbhof_newsupdate_idupdate_whenupdate_titleupdate_textupdate_who)VALUES(NULL,'$ when', '$ title','$ text','$ who')“)
3个变化:
1_已删除设置,因为您正在插入而不是更新。
2_用值代替`而不是` 3_最后,在关闭括号之前关闭“。
查找上面编辑过的代码,替换它时代码应该可以使用。