2015-08-26 138 views
2

嗨:我在調試某些MySQL代碼時遇到了問題。'SQLSTATE [42S22]:未找到列:1054未知列'id'

背景

  • 下載http://ajaxlivesearch.com/源代碼
  • 操作指導和調試啓用
  • 創建一個MySQL數據庫具有以下欄目:LIST_ADDRESS,list_COMPANY,list_WEBSITE,list_INDUSTRY
  • 我知道db +連接工作(我設置了一個小測試文件來連接&吐出db表中的數據)

問題

  • 搜索無法正常工作,並返回一個 '出事了' 錯誤
  • 啓用調試,error_log中文件顯示以下內容:

[26-Aug-2015 06:37:42 UTC] PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'field list'' in /public_html/inz/class/handler.php:85 Stack trace:

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行左右)包含followi NG代碼:

$db = DB::getConnection();

//this is line 85// $stmt = $db->prepare('SELECT COUNT(id) FROM ' . Config::USER_TABLE . ' WHERE ' . Config::SEARCH_COLUMN . ' LIKE :query'); $search_query = $query.'%';

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

$stmt->execute();

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

  • 對於裁判,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

在表格中添加一個id列並將其設置爲唯一 – Ohgodwhy

+0

錯誤告訴你需要知道的一切:「列id缺失」。添加:) –

+0

顯示你的表'Config :: USER_TABLE' 它包括什麼列? –

回答

2

爲了消除,你可以在你的查詢更改count(id)count(1)此特定錯誤。

+0

謝謝 - 這也有幫助:它現在至少返回一個結果(儘管是空的結果),這比一旦'id'列被添加後的結果更多。 –

+0

考慮這個答案@Your常識 - 我不能標記它回答了:) –

相關問題