簡體   English   中英

簡單的'SELECT字段FROM table_name其中TO =“$ to”'返回MySQL錯誤1064

[英]Simple 'SELECT field FROM table_name where TO = “$to”' is returning MySQL error 1064

這個問題讓我難以忍受了幾天。

我有一個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行的'FROM FROM table_name WHERE to ='userOne''附近使用正確的語法。 1064

最后的1064是與錯誤相關的MySQL錯誤號。 錯誤1064是某種解析錯誤(來源: http//dev.mysql.com/doc/refman/5.0/en/error-messages-server.html#error_er_parse_error )但我不確定導致此錯誤的原因。 還要注意錯誤是說第1行有錯誤,但這行在我的代碼中實際上是第68行。 我能夠在我的數據庫中的其他表上運行類似於SELECT * FROM other_table where name = "$name"查詢, SELECT * FROM other_table where name = "$name"

任何想法為什么這個查詢不能正常運行?

引發此錯誤的原因的話to在MySQL中被保留 ,你可以在這里閱讀: http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

因此,您應該更改此行:

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

進入這個:

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

這個問題讓我難以忍受了幾天。

下次幾個小時后請求幫助:-)

檢查MySQL保留字 to是一個保留字,你應該更改字段名稱或使用它周圍的反引號:

`to`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM