2011-08-12 21 views
1

このクエリは、このエラーをスローしています。なぜ誰かが見ることができますか?不明なカラム 'in' where句 '

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

where句 '

+0

'である何$ uniqueUnits [a] '? –

答えて

5

2つの問題。

  • 文字列を区切るためにバッククォートを使用しています。 Backticksはのフィールドを区切っているので、MySQLはあなたがそれを列名にしようとしていると考えています。

  • エラーメッセージは、実際には列名であると考えられるこの値が空であることを示しています。したがって、値$uniqueUnits[a]が壊れているか、正しく補間されていない可能性があります。


次の操作を実行する必要があります。

明示的
  • Interpolate your variables「複雑な構文」で正しく文字列の形式ことを確認します。

  • チェック$queryの価値あなたが起こっているのかを見ることができるように:

    print $query; 
    
  • 使用実際の引用符文字列を区切る:

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

'で' 不明な列' [A]空の文字列に解決明らかに$ uniqueUnitsので。そして、このような列はデータベースにはありません。

3

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

バッククォートを試すには、予約語をエスケープするためのものであるので、MySQLは、フィールド名にあなたの変数の内容を翻訳しています。このように、{}を使用して、アレイを囲む

0

試してみてください。また

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

は、あなたのテーブルに実際の列IDのですか?

+0

いいえ、 'echo" text $ array [key] "'は正しいです。 –

+0

http://www.php.net/manual/en/language.types.array.php「文字列の中にあるので、以下は大丈夫です」を検索してください。 –

+0

謝罪します。ありがとうTomalak。私がこの答えにそれ以上の活動をしなければ、私はそれを削除します。 – Bojangles

関連する問題