2011-09-13 75 views
0

準備更新我看了PHP手冊了一個多小時,並試圖谷歌的答案,但無濟於事:(什麼是錯我的代碼 - 在PHP

$stmt = $mysqli->prepare("UPDATE players SET energy=:energy, confidence=:confidence, morale=:morale WHERE playerID=:playerID "); 
$stmt->bindParam(':energy', $energy); 
$stmt->bindParam(':confidence', $confidence); 
$stmt->bindParam(':morale', $morale); 
$stmt->bindParam(':playerID', $playerID); 

$playerID=1; 
$energy = 1000; 
$confidence = 1100; 
$morale = 1200; 

$stmt->execute(); 

但是當我嘗試運行它我收到以下錯誤

Fatal error: Call to a member function prepare() on a non-object in /home/www/websites/www.cricket.cliftonbazaar.com/gm/rungame/rungame.php on line 136 

注意線136是準備線路

編輯:所有的變量和表名是正確的,他們一直在三重檢查

+0

檢查是否啓用PDO – Gowri

+0

請將您的代碼發佈到/創建$ mysqli – breiti

+0

您應該以'var_dump'ing'$ mysqli'開頭,PHP認爲它不是一個對象。 – soulmerge

回答

2

$ mysqli不是一個對象。答案是錯誤的。

2

問題出在您發佈的代碼之前。如果你var_dump($mysqli);你會發現它不是你的想法(我的猜測是它是FALSE)。如果您在創建mysqli對象的地方發佈代碼,我們可以幫助您找出問題的確切位置。

此外,在使用它們($playerID等)之後,您似乎正在分配值,因此需要將這4行移動到$stmt->bindParam()以上。儘管它可能有效,但你所做的並不嚴格正確,並可能導致未定義的變量錯誤。