php - php中的更新函数

标签 php mysql function sql-update

我有一个更新功能,当我运行 index.php 时,它现在可以更新 MySQL 数据库所需的更改。

这是更新我的密码而不是名称字段,我已经检查了代码但无法弄清楚原因。 非常感谢任何帮助。

指示用输入的数据更新哪些 ID 和字段的索引

    <?php
require_once 'core/init.php';

$userInsert = DB::getInstance()->update('users', 1, array(
    'password'   => 'newpass',
    'name'       => 'Ben'
));

不同php更新数据库的函数

    public function update($table, $id, $fields) {
    $set = '';
    $x = 1;

    foreach($fields as $name => $value) {
        $set .= "{$name} = ?";
        if($x < count($fields)) {
            $set .= ',';
        }
        $x++;
    }

    $sql = "UPDATE {$table} SET {$set} = 'newpassword' WHERE id = {$id}";

    if(!$this->query($sql, $fields)->error()) {
        return true;
    }

    return false;
}

我认为这是一个小错误或输入错误,但我看不出问题所在。

如您所见,密码字段已更改但名称未更改 enter image description here

最佳答案

public function update($table, $id, $fields) {
    $set = '';
    $x = 1;

    foreach($fields as $name => $value) {
        $set .= "{$name} = \"{$value}\"";
        if($x < count($fields)) {
            $set .= ',';
        }
        $x++;
    }

    $sql = "UPDATE {$table} SET {$set} WHERE id = {$id}";

    if(!$this->query($sql, $fields)->error()) {
        return true;
    }

    return false;
}

关于php - php中的更新函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20982024/

相关文章:

php - 将数据存储在 MySQL 还是 PHP 文件中?

MySQL 将两列的差值计算成一个 Total 列

javascript - 为什么函数不可序列化?

php - 为什么 PDO 在这里只返回一行?

php - 无法使用php在mysql数据库中保存日期

PHP - PDO 连接对象查询不工作

php - Mysql查询计数某些值

mysql - 将相同的sql结果绑定(bind)为一个字符串

传递具有任意数量参数的任意函数的 C++ 函数

php - jquery更多按钮问题