我有以下函数返回状态,查询可以更新表但仍然获得状态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');
}
答案 0 :(得分:5)
你应该使用$ 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;
}
答案 1 :(得分:0)
您可以将 num_rows 方法与select query一起使用。
如果您想要受影响的行,请尝试 affected_rows
阅读有关受影响行http://php.net/manual/en/mysqli.affected-rows.php
的特定文档if($mysqli->affected_rows != 0){
return true;
}