2012-05-26 92 views
0

爲什麼下列哪項是錯誤有人能向我解釋:關於PHP連接對象

$sql='SELECT * FROM images'; 
$hostname ='localhost'; 
$username= 'root'; 
$password= ''; 
$db= 'myDB'; 

$numRows=new mysqli($hostname, $username, $password, $db)->query($sql)-> num_rows; 

錯誤拋出是:語法錯誤,意想不到的T_OBJECT_OPERATOR .....

,並有可能糾正它在上面的一個聲明?謝謝。

+5

爲什麼你會想嘗試這樣一個可怕的事情?數據庫操作可能並且確實會失敗 - 像這樣假設成功並且會在某個時候炸燬你。 –

回答

2

您實例化mysqli。

$m = new mysqli($hostname, $username, $password, $db); 
$numrows = $m->query($sql)->num_rows; 
+0

是的,它運作bsdnoobz,但從邏輯上講,它也應該以我上面的方式工作。該對象已經創建並正在執行該功能。試圖找出對象和鏈接背後的邏輯。謝謝。 – user1207965

0

將括號放在new mysqli(....)左右。

即。將以下內容:

$numRows=(new mysqli($hostname, $username, $password, $db))->query($sql)-> num_rows; 

相反的:

$numRows=new mysqli($hostname, $username, $password, $db)->query($sql)-> num_rows; 

但作爲@MarcB說,這是一個非常可怕的事情。之後,調試將會很困難。

+0

嗨Ahmedtabrez,仍然把括號,因爲你指出並沒有解決這個錯誤。 – user1207965