Подготовленный оператор MySQL UPDATE не обновляет значения БД - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь создать скрипт для обновления значений, хранящихся в БД, новыми значениями, набранными в форме

ПОЛУЧИТЕ значения из формы:

$reviewTitle = $_POST['reviewTitle'];
$storeScore = $_POST['storeScore'];
$reviewContent = $_POST['reviewContent'];

ОБНОВЛЕНИЕ Значений в БД

$sql = "UPDATE reviews SET reviewTitle=?, storeScore=?, reviewContent=? WHERE reviewID=?";

$stmt = $db->prepare($sql);

$stmt->bind_param('sisi', $reviewTitle, $storeScore, $reviewContent, $_POST['edit']);

$stmt->execute();

if ($stmt->error) {
  echo "FAILURE!!! " . $stmt->error;
}
else echo "Updated {$stmt->affected_rows} rows";

header("Location: review?store=" . $store['storeName']);

Я не вижу причины, по которой это не будет работать, я что-то упустил в синтаксисе? Любая помощь приветствуется

РЕДАКТИРОВАТЬ: я добавил ошибку, которая выводится сценарием

Fatal error: Uncaught Error: Call to undefined method 
PDOStatement::bind_param() in . 
/home/o2q4e1ph6yl2/public_html/editreview.php:38 Stack trace: #0 
/home/o2q4e1ph6yl2/public_html/review.php(54): include() #1 {main} . 
thrown in /home/o2q4e1ph6yl2/public_html/editreview.php on line 38

1 Ответ

0 голосов
/ 08 января 2019

Ответ на вопрос:

$query = $db->prepare("UPDATE reviews SET reviewTitle=:reviewTitle, storeScore=:storeScore, reviewContent=:reviewContent WHERE reviewID=:reviewID");

$query->execute(array(':reviewTitle' => $reviewTitle, ':storeScore' => 
$storeScore, ':reviewContent' => $reviewContent, ':reviewID' => $reviewID));

Потребовалось всего 4 часа, чтобы понять

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...