2013-04-01 24 views
0

我正在嘗試將一個mysql腳本轉換爲mysqli並命中一堵牆。我嘗試轉換mysql_result然而mysqli的我不確定如何做到這一點,下面是我的代碼在創建會話時將mysql_result轉換爲mysqli

$_SESSION['num_user'] = mysql_result(mysqli_query($GLOBALS["___mysqli_ston"], "SELECT COUNT(*) FROM `members` WHERE mem_emailactivated = 1"), 0); 

回答

2

怪異,因爲它是,似乎沒有要在不取出準備/執行的方式。

$stmt = mysqli_prepare($GLOBALS['___mysqli_ston'], "SELECT COUNT(*) AS count ..."); 
mysqli_stmt_execute($stmt); 
mysqli_stmt_bind_result($stmt, $count); 
mysqli_stmt_fetch($stmt); 
$_SESSION['num_user'] = $count; 
0

您在這裏混的事情了。您不會使用mysql_result從使用mysqli的查詢中獲得結果。您將使用mysqli來遍歷返回的數組,然後將該數組存儲在$_SESSION中。

$result = $mysqli->query("call getUsers()"); 
if($result){ 
    // Cycle through results 
    while ($row = $result->fetch_object()){ 
     $user_arr[] = $row; 
    } 

    $result->close(); 
} 

$_SESSION['num_user'] = $user_arr; 
+1

+1特別是關於不在會話中存儲資源的說明。 – prodigitalson

+0

當使用mysqli_result時,我得到了錯誤致命錯誤:調用第15行的/homepages/24/d156351352/htdocs/test/storescripts/init.php中未定義的函數mysqli_result() – jhetheringt7

+1

@prodigitalson我有一種感覺,這個upvote是相當的誤判。沒有任何資源存在問題,因爲[mysql_result](http://php.net/mysql_result)確實會返回一個不起眼的標量值(在這種情況下是行計數),這可以存儲在會話中。此外,沒有mysqli_result函數存在,並且沒有多行可以迭代。 –

0

使用SafeMysql

$sql = "SELECT COUNT(*) FROM `members` WHERE mem_emailactivated = 1"; 
$_SESSION['num_user'] = $db->getOne($sql); 
+0

這給了我一個錯誤致命錯誤:在第16行的/homepages/24/d156351352/htdocs/test/storescripts/init.php中的非對象上調用成員函數getOne() – jhetheringt7