Что не так с моим кодом - подготовить обновление в php - PullRequest
0 голосов
/ 13 сентября 2011

Я читал руководство по 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 является строкой ПОДГОТОВКИ.

РЕДАКТИРОВАТЬ: все имена переменных и таблиц правильные, они были проверены трижды.

Ответы [ 2 ]

2 голосов
/ 13 сентября 2011

Проблема лежит перед кодом, который вы опубликовалиЕсли вы var_dump($mysqli);, вы обнаружите, что это не то, что вы думаете (я думаю, это FALSE).Если вы публикуете код, в котором вы создаете объект mysqli, мы можем помочь вам точно определить, в чем заключается проблема.

Кроме того, вы, похоже, присваиваете значения после того, как используете их ($playerID и т. Д.),вам нужно переместить эти 4 строки выше $stmt->bindParam() вызовов.Хотя это может работать, но то, что вы сделали, не совсем правильно и может привести к неопределенным ошибкам переменных.

2 голосов
/ 13 сентября 2011

$ mysqli не является объектом.Ответ в ошибке.

...