PHP和MySQL中的INSERT查询语法错误

时间:2013-11-16 07:12:04

标签: php mysql

我无法使用以下PHP语法在myTable MySQL表中插入id和name。 id是整数字段,name是varchar字段。

$query="INSERT INTO myTable (id, name) VALUES (".$_SESSION["id"].", ".$_SESSION["name"].");";

上面的语法有问题吗?按照我的说法,因为如果插入硬编码的值,那么这些值就会很好。

5 个答案:

答案 0 :(得分:3)

是的,您需要使用名称

的单引号
$query="INSERT INTO myTable (id, name) VALUES (" . $_SESSION["id"] . ", '" . $_SESSION["name"]."');";

此外,请尽量不要使用字符串连接/替换来手动构建查询。如果您的$_SESSION(某种程度上)包含可以完全操纵查询的内容,则会很危险。

阅读SQL注入和what PHP offers.

答案 1 :(得分:2)

将字符串值放在引号内:

$query="INSERT INTO myTable (id, name) VALUES (".$_SESSION["id"].", '".$_SESSION["name"]."');";

答案 2 :(得分:2)

字符串应该用引号括起来

 $query="INSERT INTO myTable (id, name) VALUES (".$_SESSION["id"].", '".$_SESSION["name"]."');";

答案 3 :(得分:1)

name是保留字。在它周围放置反引号。此外,您需要在名称变量周围引用(如果不是整数,则需要id。)

您的查询应如下所示:

$query="INSERT INTO myTable (id, `name`) VALUES (".$_SESSION["id"].", '".$_SESSION["name"]."')";

答案 4 :(得分:0)

使用此

$query="INSERT INTO myTable (id, name) VALUES ({$_SESSION["id"]},'{$_SESSION["name"]}');";