我无法使用以下PHP语法在myTable MySQL表中插入id和name。 id是整数字段,name是varchar字段。
$query="INSERT INTO myTable (id, name) VALUES (".$_SESSION["id"].", ".$_SESSION["name"].");";
上面的语法有问题吗?按照我的说法,因为如果插入硬编码的值,那么这些值就会很好。
答案 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"]}');";