2011-08-08 267 views
0

我的表預約以下字段組成:小時,分鐘,日,月,名,表,rnumber問題用PHP MySQL查詢

當我執行查詢,如下所示:

$query = "select * from reservation"; 

$result = $db->query($query); 
$row = $result->fetch_assoc(); 

它完美的作品。

然而,當我更改查詢是

$query = "select * from reservation where table like '%1%'"; 

得到了一個空白的結果,並在Apache日誌以下錯誤:

Mon Aug 08 20:17:19 2011] [error] [client ::1] PHP Fatal error: Call to a member function fetch_assoc() on a non-object in /srv/http/reservation.php on line 43, referer: http://localhost/

如果我將其更改爲以下:

$query = "select * from reservation where 'table'=1"; 

我得到0結果。 (表是INT)

第二個問題是,我使用最新的語法?我見過大多數人使用mysql_query()。

回答

3

table是保留字。最好不要使用它;無論如何,您的查詢的正確語法是使用反引號:

$query = "select * from reservation where `table` = 1"; 
+0

它工作!謝謝:) – patokun

0
do a $db->query($query) or die(mysql_error()); 

$result可能是false due to a SQL error

我假設你不能在int字段(從未嘗試過)做過類似的事情,這應該讓你知道爲什麼MySQLrejecting your statement

1

table是MySQL保留字。如果你想查詢的列名使用它,你需要把它放在反引號(不是單引號是你一個人):

$query = "select * from reservation where `table`=1"; 
0

要回答你的第二個問題,你的代碼是更多的最新比其他使用mysql_query的人。你似乎在使用mysqli,這是一件好事。 mysql_query等。已經過時多年了,不推薦用於任何新項目。

+0

是的,這可能是因爲我是新來的PHP/MySQL,並查找了一本最新的書來學習。感謝您的反饋! – patokun