php mysqli 更新集不起作用

标签 php mysql mysqli prepared-statement

我有一个带有 mysql 数据库的 php 脚本。我有带有准备好的语句的 UPDATE SET 查询。但是,当我提交表单时,我得到的回显更新正确更改,但当我查看数据库时,数据没有更改。

出了什么问题?

提前致谢。

我的代码是:

include 'connect.php';


$sql = "UPDATE names SET name = ?, lastname = ?, address = ?, place = ?, telephone = ?, description = ? WHERE id = ?  ";
$stmt = $link->prepare($sql);
$stmt->bind_param("issssss", $id, $name, $lastname, $address, $place, $telephone, $description);


 $id = $_POST['id'];
 $name = $_POST['name'];
 $lastname = $_POST['lastname'];
 $address = $_POST['address'];
 $place = $_POST['place'];
 $telephone = $_POST['telephone'];
 $description = $_POST['description'];
 $stmt->execute();


if (! $sql) {
    echo "Data not changed";
} else{
    echo "Data correct changed";
    }
$stmt->close();
mysqli_close($link);

表单代码为:

<form  action="update.php" method="POST" >
        <input type="text" name="id"  placeholder="id">
            <br /><br />
        <input type="text" name="name"  placeholder="name">
            <br /><br />
        <input type="text" name="lastname"  placeholder="lastname">
            <br /><br />
        <input type="text" name="address"  placeholder="address">
            <br /><br />
        <input type="text" name="place"  placeholder="place">
            <br /><br />
        <input type="text" name="telephone"  placeholder="telephone">
            <br /><br />
        <textarea  rows="4" cols="50" placeholder="description" name="description"></textarea>
            <br /><br />
        <input type="submit" name="update" value="update">

</form>

最佳答案

您的绑定(bind)参数不在序列中您需要将您的id放在最后

<?php
$sql = "UPDATE names SET name = ?, lastname = ?, address = ?, place = ?, telephone = ?, description = ? WHERE id = ?  ";
$stmt = $link->prepare($sql);
$stmt->bind_param("ssssssi", $name, $lastname, $address, $place, $telephone, $description,$id);

并使用$stmt->affected_rows检查数据是否更新

$stmt->execute();
//You can get the number of rows affected by your query
$nrows = $stmt->affected_rows;
if (!$nrows) {
     echo "Data not changed";
}

关于php mysqli 更新集不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34039478/

相关文章:

php - Symfony2 - 如何删除/移动实体?

php - MySql 嵌套选择变量在 PHP 中不起作用

php - mysqli_stmt 从 3 个表获取有限数据

php - MYSQL:如何从列中选择最高出现次数?

php - 如何在 Ratchet 中使用 session 提供程序?

mysql - 当 NOT IN 内部查询包含值 'NULL' 时,为什么结果集为 EMPTY?

mysql - 如何获取m中的多个条件:n relations with multiple joins?

mysql - 获取所有具有重复电子邮件地址的用户

php - 我可以在 PHP 中混合使用 MySQL API 吗?

php - 如何从 $stmt->get_result() 检索单个值