我的SQL语法真的错了吗?

时间:2012-08-15 12:50:05

标签: php mysql syntax insert

这是我用来在数据库中插入值$id$str$name的代码:

$r=mysql_query("INSERT INTO varta(id,data,name) VALUES('$id','$str','$name');");

但是我收到上述语句的语法错误。这是为什么?我的语法真的错了吗?

2 个答案:

答案 0 :(得分:4)

尝试在查询字词之间添加空格,并确保转义输入

$id = mysql_real_escape_string($id);
$str = mysql_real_escape_string($str);
$name = mysql_real_escape_string($name);

$r=mysql_query("INSERT INTO varta (id,data,name) VALUES ('$id','$str','$name');");

或者更好 - 看看MySQLiPDO并使用准备好的陈述。

答案 1 :(得分:1)

只要您的输入变量被正确转义,您的代码在面值上看起来就可以了。试试这个,这样你就可以看到你正在执行的语句:

$s = "INSERT INTO varta (id,data,name) VALUES('$id','$str','$name');";
echo $s;
$r = mysql_query($s);

检查您的变量是否包含撇号,例如“Daisy O'Donnel”(这表示您没有正确转义它们。)