MySQL语句没有正确执行

时间:2013-10-08 19:27:24

标签: php mysql

我试图通过php中的mysql将数据插入表中,但我经常遇到错误。我已多次查看代码,似乎无法弄清楚导致它的原因。 这是代码:

$mysql_insert_vote = "INSERT INTO tb_votes VALUES ('$user_id','$get_award_id',
'$vote_val'";

$conn->query($mysql_insert_vote) or die("SQL Error (INSERT): "
.mysqli_error($conn));

useridawardidvote_val都具有正确的值。我已经使用echo手动检查了它们,但语句本身不起作用。

代码有什么问题?

3 个答案:

答案 0 :(得分:2)

您的陈述需要一个右括号

$mysql_insert_vote = "INSERT INTO tb_votes VALUES ('$user_id','$get_award_id','$vote_val')";

您还需要转义输入或使用预准备语句以确保它不易受SQL注入攻击

答案 1 :(得分:0)

在查看您的代码之后,我在第一行发现了一个错误,您错过了结束括号?你有没有注意到这个错误?

$mysql_insert_vote = "INSERT INTO tb_votes VALUES ('$user_id','$get_award_id','$vote_val'");
$conn->query($mysql_insert_vote) or die("SQL Error (INSERT): ".mysqli_error($conn)); 

将来您可以使用http://sqlfiddle.com/等工具来帮助您识别和构建SQL代码。这些可用于许多不同的语言!

..并且您还需要转义输入或使用预准备语句以确保它不易受SQL注入攻击

答案 2 :(得分:0)

你在最后遗漏了一个括号

$mysql_insert_vote = "INSERT INTO tb_votes VALUES ('$user_id','$get_award_id','$vote_val'";

此外,您似乎尝试将变量值($ user_id)包含在引号内。如果是这样,这不是正确的方法。

直接的方式:创建另一个变量,使其包含带引号“''”的$ user_id。

最简单的调试方法是打印SQL查询字符串并使用Workbench或命令行编辑器在MYSQL中运行它。

我同意@tadman和@Machavity使用参数化查询,而不是使用字符串表示。