gpt4 book ai didi

PHP PDO bindParam() 和 MySQL BIT

转载 作者:行者123 更新时间:2023-11-29 01:40:41 25 4
gpt4 key购买 nike

我正在尝试更新其中包含 BIT 类型值的表中的数据,如下所示:

// $show_contact is either '1' or '0'
$query->bindValue(':scontact', $show_contact, PDO::PARAM_INT);

问题是,它永远不会更改值,它仍然是 PHPMyAdmin 上设置的“1”。我尝试了不同的 PDO::PARAM_ 类型但没有成功,其他一切正常。

编辑完整脚本

        $sql = "UPDATE users SET password = :password, address = :address, postal = :postal, city = :city, contact = :contact, show_contact = :scontact WHERE id = :id";

$query = $dbh->prepare($sql);

$query->bindValue(':id', $user->id, PDO::PARAM_INT);
$query->bindValue(':password', md5($password), PDO::PARAM_STR);
$query->bindValue(':address', $address, PDO::PARAM_STR);
$query->bindValue(':postal', $postal, PDO::PARAM_STR);
$query->bindValue(':city', $city, PDO::PARAM_STR);
$query->bindValue(':contact', $contact, PDO::PARAM_STR);
$query->bindValue(':scontact', $show_contact, PDO::PARAM_INT);
$query->execute();

最佳答案

PDO 有一点错误,即传递给查询的任何参数,即使特别指定为 PDO::PARAM_INT 也被视为字符串并用引号括起来。 READ THIS

解决它的唯一方法是尝试以下方法:

$show_contact = (int)$show_contact;
$query->bindValue(':scontact', $show_contact, PDO::PARAM_INT);

关于PHP PDO bindParam() 和 MySQL BIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24326283/

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