' SQLSTATE [42S22]:未找到列:1054未知列' id'

时间:2015-08-26 08:47:57

标签: php mysql

嗨:我在调试一些MySQL& PHP代码。

背景

  • 已下载http://ajaxlivesearch.com/源代码
  • 以下说明并启用了调试
  • 使用以下列创建了一个MySQL数据库:list_ADDRESS,list_COMPANY,list_WEBSITE,list_INDUSTRY
  • 我知道db +连接正常工作(我设置了一个小测试文件来连接并吐出数据库中的表格)

问题

  • 搜索无法正常工作并返回“出错的地方”。错误
  • 启用调试后,error_log文件显示以下内容:
  

[2015年8月26日06:37:42 UTC] PHP致命错误:未捕获的异常' PDOException'消息' SQLSTATE [42S22]:未找到列:1054未知列' id'在'字段列表''在/public_html/inz/class/handler.php:85   堆栈跟踪:

     

0 /public_html/inz/class/handler.php(85):PDO-prepare(' SELECT COUNT(id ...')

     

1 /public_html/inz/ajax/process_livesearch.php(21):Handler :: get_result(' Telecom',1,5)

     

2 {main}

  • handler.php(第85行)包含以下代码:
  

$ db = DB :: getConnection();

     

//这是第85行// $ stmt = $ db-> prepare(' SELECT COUNT(id)FROM' .Config :: USER_TABLE。&# 39; WHERE' .Config :: SEARCH_COLUMN。' LIKE:query');   $ search_query = $ query。'%';

     

$ stmt-> bindParam(':query',$ search_query,PDO :: PARAM_STR);

     

$ stmt->执行();

     

$ number_of_result = $ stmt-> fetch(PDO :: FETCH_COLUMN);

  • 对于ref,process_livesearch.php第21行包含以下内容:

            $result = json_encode(Handler::get_result($_POST['ls_query'], (int) $_POST['ls_current_page'], (int) $_POST['ls_items_per_page']));
    

有谁知道为什么它似乎在寻找一个名为' id' ?除了在handler.php的第85行中提到之外,配置文件中的任何地方都没有指定,也没有在代码中的其他地方指定...

1 个答案:

答案 0 :(得分:2)

要消除此特定错误,您可以在查询中将count(id)更改为count(1)