簡體   English   中英

'where子句'中的未知列''

[英]Unknown column '' in 'where clause'

我的查詢拋出了這個錯誤。 誰能明白為什么?

$query = "SELECT * FROM Units WHERE ID = `$uniqueUnits[a]`";

'where子句'中的未知列''

兩個問題。

  • 您正在使用反引號來分隔字符串。 反引號分隔字段,因此 MySQL 認為您正在嘗試給它一個列名。

  • 錯誤消息表明,實際上,它認為是列名的這個值是空的。 因此,您的價值$uniqueUnits[a]可能已損壞,或者未正確插值。


您應該執行以下操作:

  • 使用“復雜語法”明確地插入變量,以確保字符串 forms 正確;

  • 檢查$query的值,以便您可以看到發生了什么:

     print $query;
  • 使用實際的引號來分隔字符串:

     $query = "SELECT * FROM Units WHERE ID = '{$uniqueUnits[a]}'"; // ^ quote // ^ PHP variable interpolation

嘗試

$query = "SELECT * FROM Units WHERE ID = '$uniqueUnits[a]'";
                                         ^---            ^---

反引號用於 escaping 保留字,因此 mysql 將變量的內容轉換為字段名稱。

因為顯然 $uniqueUnits[a] 解析為空字符串。 並且數據庫中沒有這樣的列。

嘗試用{}包圍您的數組,如下所示:

$query = "SELECT * FROM Units WHERE ID = `{$uniqueUnits[a]}`";

另外,列ID實際上在您的表中嗎?

暫無
暫無

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

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