PHP mysql函数总是在更新查询时返回false

con*_*men 0 php mysql sql

我有以下功能返回状态,查询可以更新表但它仍然获得状态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');
}
Run Code Online (Sandbox Code Playgroud)

Aru*_*esh 5

你应该使用$ mysqli-> affected_rows,因为你没有更新num_rows

 if($mysqli->affected_rows !== 0){
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

改变功能如下

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;
}
Run Code Online (Sandbox Code Playgroud)