在代码中执行时更新查询不更新

时间:2017-03-20 13:55:05

标签: php mysql sql phpmyadmin prepared-statement

我已经有一段时间了,我的sql遇到了一些问题。最近我已经了解了一些准备好的陈述,我一直在使用它们,直到这个没有任何麻烦。但是现在我遇到的问题是,当我手动将编码查询转移到phpmyadmin时,我没有收到错误,但是当我从服务器中执行代码时,它不会更新任何记录。< / p>

代码:

$stmt = $conn->prepare("UPDATE `diensten` SET `titel` = ':titel', `content` = ':beschrijving', `img` = ':img' WHERE `diensten`.`id` = ':id'");
  $stmt->execute(array(':title' => $titel, ':beschrijving' => $beschrijving, ':img' => $img, ':id' => $id));

请原谅代码中的荷兰语,尽管它不应该妨碍任何功能。

1 个答案:

答案 0 :(得分:2)

使用预准备语句时,不需要围绕值使用单引号。该类型由参数插入处理。所以,你只需要:

$stmt = $conn->prepare("
UPDATE `diensten`
    SET `titel` = :titel,
        `content` = :beschrijving,
        `img` = :img
WHERE `diensten`.`id` = :id");

(为了便于阅读,我把它放在多行上。)