开发者

Unknown column '' in 'where clause'

My query is throwing up this error. Can anyone see why?

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

Un开发者_高级运维known column '' in 'where clause'


Two problems.

  • You're using backticks to delimit a string. Backticks delimit fields, so MySQL thinks you're trying to give it a column name.

  • The error message indicates that, in fact, this value that it thinks is a column name, is empty. So your value $uniqueUnits[a] is probably broken, or not being interpolated correctly.


You should do the following:

  • Interpolate your variables explictly with the "complex syntax" to be sure that the string forms properly;

  • Check the value of $query so that you can see what's going on:

    print $query;
    
  • Use actual quotation marks to delimit strings:

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


try

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

Backticks are for escaping reserved words, so mysql is translating your variable's contents into a field name.


Because apparently $uniqueUnits[a] resolves to the empty string. And there is no column like this in the database.


Try surrounding your array with {}, like this:

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

Also, is column ID actually in your table?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜