奇怪的SQL语法错误

Pro*_*sor -1 php mysql sql

有了代码,

mysql_query("INSERT INTO Messages (Message, toUser, From, Date) VALUES ('$mes','$to','$from','$date')")
Run Code Online (Sandbox Code Playgroud)

我收到了SQL语法错误.这是什么原因?我认为语法没有错.

Bol*_*ock 5

DATE 是SQL中的保留字,因此我认为当您将其用作列名时会触发语法错误,因为MySQL会尝试将其解析为列名以外的其他内容.

使用反引号转义标识符:

mysql_query("INSERT INTO `Messages` (`Message`, `toUser`, `From`, `Date`) VALUES ('$mes','$to','$from','$date')")
Run Code Online (Sandbox Code Playgroud)

或者更好,看看是否可以将列重命名为不需要转义的其他内容.