2011-09-13 54 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()以上。尽管它可能有效,但你所做的并不严格正确,并可能导致未定义的变量错误。