prepared语句mysql update不更新db值

9rbhqvlz  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(314)

我正在尝试编写一个脚本,用表单中键入的新值更新数据库中存储的值
从表单中获取值:

$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
shyt4zoc

shyt4zoc1#

问题的答案是:

$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小时就搞定了

相关问题