MySQLi等效于返回mysql_result?

时间:2014-03-01 23:33:46

标签: php mysql mysqli

因此,由于mysql被弃用,我正在将我的网站转移到mysqli。但是做研究,我一直在查找MySQLi如何返回mysql_result?

我的代码是

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

我找不到任何合适的东西,所以任何帮助都会受到赞赏!

2 个答案:

答案 0 :(得分:1)

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
}

答案 1 :(得分:0)

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
}