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

标签 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');
}

最佳答案

你应该使用 $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/

相关文章:

php - 同一 codeigniter 安装中的多个应用程序共享相同的 View 布局菜单

PHP 泄漏和 undefined variable

sql - 如何在 SQL Server 2005 中将列值用作用于 xml 的 xml 元素名称?

php - "compressing"或 "defragmenting"数组的内置 PHP 函数是什么?

PHP DOMDocument saveHTML 打破格式

java - 在java程序中创建临时表mysql的问题

mysql - 如何从 Linux 上的 asp.net 核心应用程序迁移我的表

java - hibernate :分组非常慢

sql - text 或 ntext 数据类型上 REPLACE 的替代方案

mysql - 如何使用给定的正则表达式格式检查 sql 查询中用户输入的格式?