gpt4 book ai didi

php mysqli 受影响的行在删除语句后返回错误结果

转载 作者:可可西里 更新时间:2023-11-01 08:47:15 26 4
gpt4 key购买 nike

我有一个函数可以从我的表中删除一行,如果该行之前存在,我想返回 true。我使用以下函数实现:

$mysqli = $this->mysqli;

$stmt = $mysqli->prepare("DELETE FROM active_clients WHERE token LIKE ?");
$stmt->bind_param('s', $token);
$stmt->execute();
if($stmt->affected_rows < 1){
$stmt->close();
return false;
}
$stmt->close();
return true;

它在我的本地主机上也能正常工作,但是当我移动到实时服务器时,它没有返回正确的结果。 affected_rows 始终返回 0,但该行已按原样删除。怎么会这样? php-version 会不会有问题?我在本地运行 5.4,在实时服务器 5.3 上运行...或者它也可能与数据库或服务器配置有关?

最佳答案

试试这个:

$mysqli = $this->mysqli;

$stmt = $this->mysqli->prepare("DELETE FROM active_clients WHERE token LIKE ?");
if(!$stmt){
die('prepare() failed: ' . $mysqli->error);
}else{
$stmt->bind_param('s', $token);

if($stmt->execute()){
$stmt->store_result();
if($stmt->affected_rows < 0){
$stmt->close();
return false;
}else{
$stmt->close();
return true;
}
}else{
die('execute() failed: ' . $mysqli->error);
}


}

关于php mysqli 受影响的行在删除语句后返回错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25142231/

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