-6

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

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

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

4

2 回答 2

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并使用准备好的语句。

于 2012-08-15T12:56:47.867 回答
1

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

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

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

于 2012-08-15T12:54:24.157 回答