INSERT上的PHP MySQL错误

Dav*_* K. -1 php mysql insert

我真的把头发拉出来了.我在自建的php应用程序上有一个简单的评论部分,如果我抓住$ _GET参数,我只想添加一个新行.但无论我如何构建MySQL插入请求,我都会收到错误.

这是我到目前为止:

if(isset($_GET['r'])){
    $replyid = mysql_real_escape_string($_GET['r']);
    $sentnow = date("Y-m-d H:i:s");
    mysql_query("INSERT INTO eis_inbox (messageid, toid, from, contact, seen, message, date) VALUES (NULL, '".$replyid."', 'TESTUSER', 'CONTACTINFO', '0', 'MESSAGE', '".$sentnow."'") or die(mysql_error());
    echo '<meta http-equiv="refresh" content="0;/messages">';
}
Run Code Online (Sandbox Code Playgroud)

我的MySQL数据库字段被称为完全相同:messageid(auto_increment),toid(int11),from(varchar255),contact(varchar255),seen(int3),message(text)和date(timestamp/CURRENT_TIMESTAMP).

执行上面的页面,让我们说"index.php?r = 777"应该,正如我所看到的,用一个新行填充我的MySQL:

messageid = (AUTO_INCREMENT)
toid = 777
from = TESTUSER
contact = CONTACTINFO
seen = 0
message = MESSAGE
date = 2013-01-17 11:50:01
Run Code Online (Sandbox Code Playgroud)

相反,我收到以下错误:

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, contact, seen, message, date) VALUES (NULL, '1', 'TESTUSER', 'CONTACTINFO'' at line 1
Run Code Online (Sandbox Code Playgroud)

"error_reporting(E_ALL)"显示相同的错误.

我已经研究了好几天了,而我却找不到错误......也许我是盲目的,错过逗号或结尾标签或其他东西.有任何想法吗?

Men*_*ual 5

因为您使用保留字(来自和日期)作为列名称.

用``包裹它们

即:

INSERT INTO eis_inbox (`messageid`, `toid`, `from`, `contact`, `seen`, `message`, `date`)
Run Code Online (Sandbox Code Playgroud)