2013-07-24 75 views
0

我的代碼針對非對象錯誤生成對成員函數bind_param()的調用。當我執行var轉儲時,結果是bool(false)。看起來PHP並不認爲$ statement變量是一個對象。我有點新,所以任何幫助將不勝感激。我也嘗試用一個沒有運氣的字符串替換$ id變量值。MySQLi綁定參數錯誤

<?php 
$con=new MySQLi("localhost","root","mysql","tinymce"); 

$statment = $con->prepare("SELECT * FROM 'content' WHERE 'id'=?"); 

$id=1; 

$statement->bind_param('i', $id); 

$statement->execute(); 



$con->close(); 
?> 
+0

從內容刪除單引號 – 2013-07-24 18:03:11

+2

這個問題是離題,因爲它不可能幫助未來的訪問者。 – Kermit

回答

2

這是我注意到的第一件事。使用回蜱不是單引號:

$statment = $con->prepare("SELECT * FROM `content` WHERE `id`=?"); 

其他問題注意:

// Haven't tested this but it could be case sensitive, use `mysqli` not `MYSQLi` 
$con=new mysqli("localhost","root","mysql","tinymce"); 

// Typo here? it should be `$statement = ` not `$statment` as you're using `$statement` in rest of your code. 
$statement = $con->prepare("SELECT * FROM `content` WHERE `id`=?"); 
+0

修改後引號的引號,同樣的錯誤依然存在。 – user1352096

+0

@ user1352096,因爲我已經開始了,雖然FreshPrinceOfSO說「脫離主題」,但我覺得應該解決這個問題。我已經更新了我的答案,請嘗試「發現其他問題」下的代碼。 – vee

+0

好的.- + =。 –

0

在SQL語句中存在的錯誤:

SELECT * FROM 'content' WHERE 'id'=? 

您需要使用回用領域打交道時蜱:

SELECT * FROM `content` WHERE `id`= ? 

現在爲您的問題的關鍵。如Documentation中所述,如果出現錯誤,則->prepare將返回FALSE

這會導致在「非對象」上調用bind_param的錯誤。假不是一個對象,再加上它沒有bind_param方法。有了這個說法,你需要檢查返回的語句。