我有以下函数返回状态,查询可以更新表但它仍然得到状态 ACCT_NOT_FOUND
,我一直在尝试 $sql->num_rows
或 $sql->affected_rows
但不起作用。
public function user_exit($uid, $mysqli)
{
if(empty($uid)){
return false;
}
$q = "UPDATE `users` SET last_logged_out=now() ";
$q .= "WHERE uid='".$uid."' ";
$sql = $mysqli->query($q);
if($sql->num_rows !== 0){
return true;
}
return false;
}
$exit = $api->user_exit($uid, $mysqli);
if($exit !== FALSE){
$data = array('status'=>'SUCCESS_LOGOUT');
}else{
$data = array('status'=>'ACCT_NOT_FOUND');
}
最佳答案
你应该使用 $mysqli->affected_rows 因为你更新的不是 num_rows
if($mysqli->affected_rows !== 0){
return true;
}
像下面这样改变函数
public function user_exit($uid, $mysqli)
{
if(empty($uid)){
return false;
}
$q = "UPDATE `users` SET last_logged_out=now() ";
$q .= "WHERE uid='".$uid."' ";
$sql = $mysqli->query($q);
if($mysqli->affected_rows !== 0){
return true;
}
return false;
}
关于PHP mysql 函数总是在更新查询时返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44405849/