0

私はPHPマニュアルを1時間以上読んで、答えをグーグルで検索しようとしましたが、役に立ちませんでした:(

$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 が PREPARE 行であることに注意してください。

編集:すべての変数とテーブル名は正しいです。それらはトリプルチェックされています。

4

2 に答える 2

2

問題は、投稿したコードの前にあります。あなたvar_dump($mysqli);がそれがあなたが思っているものではないことに気付くなら(私の推測ではそうですFALSE)。mysqli オブジェクトを作成したコードを投稿すると、問題がどこにあるかを正確に把握するのに役立ちます。

また、それらを使用した後に値を割り当てているように見えます(など)。これらの4行を呼び出し$playerIDの上に移動する必要があります。$stmt->bindParam()うまくいくかもしれませんが、あなたが行ったことは厳密には正しくなく、未定義の変数エラーが発生する可能性があります。

于 2011-09-13T09:29:27.637 に答える
2

$mysqli はオブジェクトではありません。答えはエラーにあります。

于 2011-09-13T09:28:11.060 に答える