gpt4 book ai didi

php - Codeigniter 查询总是返回 TRUE

转载 作者:行者123 更新时间:2023-11-29 04:25:39 28 4
gpt4 key购买 nike

我得到了用 1 或 0 更新帐户的这个函数,
请注意,account_status 的数据类型为 bool 值。

我明白 $this->db->query();在写入查询中返回 TRUE 或 FALSE,

但我遇到了麻烦,因为当我尝试在 account_status 上放置一个非 bool 值时,响应仍然是成功的,但显然它不会更新,因为数据不是 bool 值。

public function approve_account($id='0'){
if($id == '0' OR $id== ''){
return FALSE;
}else{
try{
$id = (int)htmlentities($id,ENT_COMPAT,'UTF-8');
$sql= "UPDATE elibrary.elib_user_account e
SET account_status = 'hg'
WHERE t_user_id = ?
LIMIT 1;";

if($this->db->query($sql,$id) === TRUE){
echo 'sucess';
}else{
echo 'FAIL';
}
}catch(Exception $e){
echo $e;
}
}
}

最佳答案

MySQL 没有原生的boolean 类型, bool 值表示为tinyint(1)。将字符串值存储在数字列中会将它们强制转换为数值 — 在您的情况下,字符串 'hg' 不是有效整数,并被强制转换为值 0,它存储在 account_status 列中,并进一步解释为 false。如果您的字符串包含有效数字,例如'5',它将被存储为整数值 5,对于 bool 运算,它被认为是 true

关于php - Codeigniter 查询总是返回 TRUE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12244449/

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