我无法找到我的错误。
$result= mysql_query(" INSERT INTO inbox ( messages, from, to, date, control_panel_id, title )
VALUES( '".$message."' , '".$this->sender."' , '".$this->recipient."', NOW() , '".$this->control_panel_id."' , '".$title."' )
") or die(mysql_error());
我明白了:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from, to, date, control_panel_id, title ) VALUES( ' ' at line 1
我在做什么是错的?
答案 0 :(得分:3)
当您将reserved words用作名称或别名时,需要引用{{3}}。您可以通过用反引号包围它们来完成此操作,例如:
from
如果有疑问,您可以安全地引用所有列名称。
SELECT messages, `from`, ...
另外,您可能希望考虑避免将来保留的名称,以避免这样的问题。
答案 1 :(得分:2)
from
是SQL中的保留字。如果这是一个列名,你总是必须将它括在反引号中。 (或ANSI模式的双引号)。
你也可以通过实际使用双引号来编写你的mysql_query字符串,这样做很麻烦:
$result = mysql_query("
INSERT INTO inbox
( messages, `from`, `to`, `date`,
control_panel_id, title )
VALUES
( '$message', '$this->sender', '$this->recipient',
NOW() , '$this->control_panel_id', '$title' )
")
or die(mysql_error());
(和contemporary PHP数据库接口的工作量更少,bla bla ..)
答案 2 :(得分:0)
Mysql不支持某些关键字,因为它在mysql语法中使用,所以我认为你已经改变了 关键字from,to和date to other name ...