Php 简单的'SELECT field FROM table_name where TO=“$TO”'返回MySQL错误1064

Php 简单的'SELECT field FROM table_name where TO=“$TO”'返回MySQL错误1064,php,mysql,sql,mysql-error-1064,Php,Mysql,Sql,Mysql Error 1064,这个问题已经困扰了我好几天了 我有一个MySQL表,如下所示: +--------+------------+------------+-----------+-----------+-----------+ | id | to | from |question | answer | time | +--------+------------+------------+-----------+-----------+-----------+

这个问题已经困扰了我好几天了

我有一个MySQL表,如下所示:

+--------+------------+------------+-----------+-----------+-----------+
|   id   |   to       |  from      |question   | answer    |  time     |
+--------+------------+------------+-----------+-----------+-----------+
|        |            |            |           |           |           |
| type:  |type:       |type:       |type:      |type:      | type:     |
| int(11)|varchar(26) |varchar(26) |tinyint(3) |tinyint(3) | bigint(20)|
|        |            |            |           |           |           |
|        |            |            |           |           |           |
我试图运行一个简单的SELECT,但收到一个错误。这是我用来运行查询的代码:

$to = mysql_real_escape_string($_POST['to']);
$query = "SELECT to FROM table_name WHERE to = '$to'";
$result = mysql_query("$query") or die(mysql_error() ."|". mysql_errno());
当我尝试运行此程序时,返回的结果是:

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行| 1064处的“to FROM table_name WHERE to=”userOne附近使用的正确语法

最后的1064是与错误相关联的MySQL错误号。错误1064是某种解析错误源:但我不确定是什么导致了这个错误。 还要注意,错误是说第1行有错误,但这一行实际上是我代码中的第68行。我可以在数据库中的其他表上运行类似于SELECT*的查询,其中name=$name


你知道为什么这个查询不能正常运行吗?

出现这个错误是因为mysql中保留了to这个词,你可以在这里看到:

因此,您应该更改此行:

$query = "SELECT to FROM table_name WHERE to = '$to'";
为此:

$query = "SELECT `to` FROM table_name WHERE `to` = '$to'";

出现此错误是因为mysql中保留了单词to,您可以在此处阅读:

因此,您应该更改此行:

$query = "SELECT to FROM table_name WHERE to = '$to'";
为此:

$query = "SELECT `to` FROM table_name WHERE `to` = '$to'";
这个问题已经困扰了我好几天了

下一次在几个小时后寻求帮助:-

检查。to是保留字,您应该更改字段名或在其周围使用反勾号:

`to`
这个问题已经困扰了我好几天了

下一次在几个小时后寻求帮助:-

检查。to是保留字,您应该更改字段名或在其周围使用反勾号:

`to`

欢迎来到Stackoverflow。下次你要发布这样一个问题时,请同时提供问题本身。@Col.Shrapnel另一方面对于新手来说是一个写得非常好的问题。我也在考虑这个问题,但在本例中不需要,特别是因为他已经在使用mysql\u real\u escape\u string。@stivlo它总是需要的。虽然我同意,但这是一个写得非常好的问题欢迎来到Stackoverflow。下次你要发布这样一个问题时,请同时提供问题本身。@Col.Shrapnel另一方面对于新手来说是一个写得非常好的问题。我也在考虑这个问题,但在本例中不需要,特别是因为他已经在使用mysql\u real\u escape\u string。@stivlo它总是需要的。虽然我同意,但这是一个写得非常好的问题