2014-03-01 33 views
-1

因此,由於MySQL已被棄用,我將我的網站移到mysqli。但是做研究,我一直在找出MySQLi如何返回mysql_result的問題?MySQLi等價於返回mysql_result?

我的代碼是

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

我一直沒能找到合適的任何東西,所以任何幫助,將不勝感激!

+0

通過[MySQLi的快速啓動文檔]的簡單的讀(HTTP ://uk1.php.net/manual/en/mysqli.quickstart.statements.php)會告訴你你需要知道的一切。 –

回答

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 
} 
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 
}