Php mysql\u查询的正确语法?

Php mysql\u查询的正确语法?,php,mysql,insert,syntax-error,Php,Mysql,Insert,Syntax Error,以下PHP语句出现语法错误: mysql_query("INSERT INTO table1 (to, from, msg, field, date) VALUES ('TEST_TO', 'TEST_FROM', 'TEST_MSG', 'TEST_FIELD', 'TEST_DATE')"); 返回的错误为: You have an error in your SQL syntax. 代码有什么问题?您在列名中保留了-from、to等字。使用反勾号进行转义 mysql_query

以下
PHP
语句出现语法错误:

mysql_query("INSERT INTO table1 (to, from, msg, field, date)  
VALUES ('TEST_TO', 'TEST_FROM', 'TEST_MSG', 'TEST_FIELD', 'TEST_DATE')");
返回的错误为:

You have an error in your SQL syntax.

代码有什么问题?

您在列名中保留了-from、to等字。使用反勾号进行转义

  mysql_query("INSERT INTO table1 (`to`, `from`, `msg`, `field`, `date`)  
  VALUES ('TEST_TO', 'TEST_FROM', 'TEST_MSG', 'TEST_FIELD', 'TEST_DATE')");

注意:mysql\u查询已弃用。使用mysqli_查询或PDO函数。

to
from
是。您需要引用它们(因为它们是字段名,所以使用反勾号)。(有必要养成经常引用字段名的习惯,而不是试图记住哪些字段是保留的)。

您正在使用@Quentin:推荐的替换方法是什么?请按照链接到@Quentin:mysql\u query功能何时在大多数服务器上不再工作?尚未公布时间表。mysql_*仍然不支持参数化查询,它们是抵御SQL注入攻击的最佳防御。日期也是保留的keyword@Abu-是的,但你不需要引用它。它位于我链接到的页面的前缀列表下:MySQL允许一些关键字用作不带引号的标识符,因为许多人以前使用过它们