我做错了什么?
$addedby=$_SESSION['id'];
$text="Subject: I want to add a New Phone Name :$name Address :$address Phone :$phone Category :$category Email :$email Website :$website Details :$details";
$sql = "INSERT INTO messages SET text='$text' , from='$addedby'";
mysql_query($sql) or die('Website Under Maintanance '.mysql_error());
Id是整数,from是varchar(30)
。
请告诉我我做错了什么?
错误是:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近'from ='1'
答案 0 :(得分:3)
你应该试试
$sql = "INSERT INTO messages (`text`,`from`) values ('$text' , '$addedby')";
请注意,在组装SQL查询之前,您应该始终清理手动输入,因为SQL注入非常糟糕,并且可以很容易地对您的数据库执行任何操作...
答案 1 :(得分:3)
这是正确的INSERT
语法:
INSERT INTO messages(`text`, `from`) VALUES('$text', '$addedby');
请注意:您的代码以这种方式容易被SQL Injection使用PDO或准备好的语句。有关更多信息,请参阅以下帖子:
答案 2 :(得分:1)
$sql = "INSERT INTO messages SET text='$text' , from='$addedby'";
应该是
$sql = "INSERT INTO messages (`text`,`from`) VALUES('$text','$addedby')";
请开始使用mysqli
或PDO
代替Mysql。它被弃用了。
你应该认真阅读一些关于SQL的例子和内容。
答案 3 :(得分:1)
你做错了什么:
or die
构造而不是例外。您想要的查询是(假设$ text和$ addedby属性转义以防止SQL注入)
INSERT INTO messages (`text`, `from`) VALUES ('$text', '$addedby')