繁体   English   中英

PHP mysql函数在更新查询时始终返回false

[英]PHP mysql function always return false on update query

我有下面的函数来返回状态,查询可以更新表,但是它仍然得到状态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;
}

您可以对选择查询使用num_rows方法。

如果您想让受影响的行,您应该尝试影响的行

阅读有关受影响的行的特定文档http://php.net/manual/en/mysqli.affected-rows.php

if($mysqli->affected_rows != 0){
        return true;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM