【问题标题】:MySQLi Equivalent to return mysql_result? [duplicate]MySQLi 等价于返回 mysql_result? [复制]
【发布时间】:2014-04-03 00:46:00
【问题描述】:

因此,由于 mysql 已被弃用,我将我的网站移至 mysqli。但是在做研究时,我一直在寻找 MySQLi 等价物如何返回 mysql_result 的问题?

我的代码是

function user_count() {
    return mysql_result(mysql_query("SELECT COUNT('user_id') FROM `ooig_users` WHERE `active`=1"), 0);
}

我找不到任何适合它的东西,所以任何帮助都将不胜感激!

【问题讨论】:

标签: php mysql mysqli


【解决方案1】:

MySQLi 没有mysql_result() 的直接等价物;这是最接近其简单性的地方:

function user_count(mysqli $db) 
{
    $sql = "SELECT COUNT('user_id') FROM `ooig_users` WHERE `active`=1";
    return current($db->query($sql)->fetch_row());
}

但是,最好在此过程中检查故障:

function user_count(mysqli $db) 
{
    $sql = "SELECT COUNT('user_id') FROM `ooig_users` WHERE `active`=1";
    if (($res = $db->query($sql)) !== false) {
        // if query succeeds it must have one row
        return current($res->fetch_row());
    }
    return null; // or throw an exception
}

【讨论】:

    【解决方案2】:

    mysqli_query 返回 mysqli_resultbool

    失败时返回 FALSE。对于成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询,mysqli_query() 将返回一个 mysqli_result 对象。对于其他成功的查询,mysqli_query() 将返回 TRUE。

    你可以这样使用它:

    // $query is a SELECT:
    if($result = mysqli_query($connection, $query)){
    // or go paranoid:
    // if(($result = mysqli_query($connection, $query)) and ($result instanceof mysqli_result)){
        // use it
    }
    

    【讨论】:

      猜你喜欢
      • 2016-08-12
      • 2016-07-07
      • 2011-01-06
      • 2014-03-23
      • 2014-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多