gpt4 book ai didi

php - 尝试更新 MySQL 中的行时,bindParam 错误

转载 作者:行者123 更新时间:2023-11-29 19:01:49 24 4
gpt4 key购买 nike

我想我已经阅读了 stackoverflow 上有关此问题的每一个威胁,但我仍然无法弄清楚为什么会出现此错误。

MySQL 数据库由以下列名组成:id、stores、results。

我在表单中有一个按钮。当我单击“选择”按钮时,列名记录应更新为 +1。每次我单击按钮时都会收到错误:

fatal error :未捕获错误:在/Applications/MAMP/htdocs/project/updaterecords.php:12 中的 bool 值上调用成员函数 bindParam():12 堆栈跟踪:#0 {main} 抛出在/Applications/中MAMP/htdocs/project/updaterecords.php 第 12 行

有人能看出这里出了什么问题吗?

html

<form action="updaterecords.php" method="post">
<input type="hidden" value="333" name="id" />
<button type="submit" name="selectStore" >Select</button>
<button type="button" data-dismiss="modal">Close</button>
</form>

updaterecords.php

    <?php
include 'dbconnection.php';

if(isset($_POST['selectStore'])) {
$id = $_POST['id']; // Line 8

$stmt = $mysqli->prepare("UPDATE stores SET records = records + 1 WHERE id = :id");

$stmt->bindParam(':id', $id); //line 12

if ($stmt->execute()) {
$success = true;
}

$stmt->close();

$mysqli->close();
if($success) {
echo "Updated Succesfull";
} else {
echo "Failed: " . $stmt->error;
}
}

?>

最佳答案

bindParam 用于 PDO 中。在 mysqli 中,我们使用 bind_param

mysqli does not support named placeholders.

将代码重写为

 $stmt = $mysqli->prepare("UPDATE stores SET records = records + 1 WHERE id = ?");
$stmt->bind_param('i', $id);
$stmt->execute();

关于php - 尝试更新 MySQL 中的行时,bindParam 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43817490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com