2011-08-12 128 views
1

我的查詢正在拋出此錯誤。任何人都能看到爲什麼'在''where子句'中的未知列''

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

未知列 'where子句'

+0

什麼是' $ uniqueUnits [A]'? –

回答

5

兩個問題。

  • 您正在使用反引號來分隔字符串。反引號劃分字段,所以MySQL認爲你想給它一個列名。

  • 錯誤消息指示實際上它認爲是列名的此值爲空。所以你的價值$uniqueUnits[a]可能被破壞,或者沒有正確插入。


你應該做到以下幾點:

  • 與 「複雜的語法」,以確保Interpolate your variables顯式的字符串形式正確;

  • 檢查$query值,以便你可以看到發生了什麼事情:

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

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

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

3

嘗試

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

反引號是轉義保留的話,那麼MySQL是你的翻譯變量的內容到某個字段名。

0

嘗試與周圍的{}陣列,像這樣:

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

而且,是ID列實際上是在你的餐桌?

+0

不,'echo「文本$ array [key]」'是正確的。 –

+0

http://www.php.net/manual/en/language.types.array.php搜索「以下是好的,因爲它在一個字符串中」 –

+0

我的歉意。感謝Tomalak。如果我對這個答案沒有任何更多的活動,我會刪除它。 – Bojangles