2012-11-18 33 views
1

我無法通過表單中的用戶輸入在MySQL數據庫表中搜索多個列。MySQL SELECT語句只搜索表中的3個字段

表中的數據庫被稱爲車輛,有4個字段/列:年份,製造商,型號和選項

用戶從我投入了$輸入變量的表單輸入其搜索標準。

下面是我的代碼不起作用。它返回一個布爾值誤差:

(Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given) 

$query = ("SELECT * FROM vehicles WHERE year LIKE '%$input%' OR make LIKE '%$input%' OR model LIKE '%$input%' OR option LIKE '%$input%'"); 

$result = mysql_query($query); 

然而,當我刪除最終或從查詢,它工作正常,但只搜索年,製造商和型號字段:

$query = ("SELECT * FROM vehicles WHERE year LIKE '%$input%' OR make LIKE '%$input%' OR model LIKE '%$input%'"); 

$result = mysql_query($query); 

怎麼辦我得到查詢來搜索所有4個字段/列?我錯過了什麼?

是否有一種更簡單的方法可以搜索整個表格(表格中的所有列)以查找用戶的輸入?

真的很感謝你能給我的任何幫助。

回答

3

「選項」是mysql中的保留字,see here。所以,你的查詢實際上失敗了,並返回一個布爾值false而不是資源。重命名這樣

$query = ("SELECT * FROM vehicles WHERE year LIKE '%$input%' OR make LIKE '%$input%' OR model LIKE '%$input%' OR `option` LIKE '%$input%'"); 

列或使用``身邊也一定要使用正確的逃逸是反對SQL Injection安全。

+0

感謝您的快速回復!我將列更改爲EXTRA而不是OPTION,它的功能就像一個魅力!我知道這很簡單。太感謝了! – user1833698

+0

不客氣;)。請不要忘記將此標記爲解決問題的答案。 –