2013-12-12 51 views
0

似乎是一個愚蠢的事情,現在卡住了,但我無法獲得第二個條件來匹配我的數據庫列。當我這樣做:數據庫查詢不符合第二個條件

"SELECT * FROM comments WHERE article_id='$link'" 

我收到所有與文章名稱相關的評論。但是,當我添加第二個條件,我什麼也沒有:

"SELECT * FROM comments WHERE article_id='$link' AND show=1" 

我試着做節目=「1」,也和沒有工作。我數據庫中的最後一列是一個INT,默認值如下定義:1。我怎樣才能讓我的多條件查詢工作?謝謝...

+0

什麼是'$ link'等於把它包起來?你收到什麼錯誤信息? –

+1

實際數據是否符合兩個條件?如果你設置了一個默認值並不重要,你可能已經插入了一個值爲null的行或者其他東西...... – Alfabravo

+0

從第一個查詢返回的行的show值是多少? –

回答

2

你的錯誤不是在條件。 SHOW是在MySQL reserved words的列表頁面。所以逃避它:

SELECT * FROM comments WHERE article_id='$link' AND `show`=1 

- 否則,不要使用保留字命名列。當然,請確保表中存在show=1的行。

+0

+1,從可讀性的角度來看,我已經認識到它是一個很好的練習來逃避所有的列。 – thepratt

+0

這就是問題所在......我將列名從顯示更改爲顯示,現在它可以正常工作......我什麼時候才能學會!不要忘記保留字 – denikov

3

show是mysql中的關鍵字。查詢必須失敗。使用show與反引號這樣`show`

1

show是MySQL的reserved word,所以你需要用反引號`show`

"SELECT * FROM comments WHERE article_id='$link' AND `show`=1" 
相關問題