2010-07-04 58 views
0

我需要計算從一個表中的同一狀態特定用戶的人數。我想用準備好的發言,所以我做這樣的事情(不工作):如何將COUNT()與MYSQLi和Prepared Statements結合使用?

$sql = 'SELECT status, COUNT(personID) FROM user_persons GROUP BY status WHERE userID = ?'; 

if ($stmt->prepare($sql)) { 
    $stmt->bind_param('i', $userID); 
    $stmt->bind_result($status, $count); 
    $stmt->execute(); 
    while ($stmt->fetch()) { 
     $data[$status] = $count; 
    } 
} 

我想得到這樣一個數組:

$data[favorite] = 126 
$data[otherstatus] = 345 

如何做到這一點?

+0

有什麼不適合呢? – 2010-07-04 13:05:05

回答

2

我相信GROUP BY應該在WHERE子句之後。

$sql = 'SELECT status, COUNT(personID) FROM user_persons WHERE userID = ? GROUP BY status' 

您是否收到其他錯誤?或者它只是沒有做你想要的東西?

0

把一個別名它,例如:

$sql = 'SELECT status, COUNT(personID) AS count_p FROM user_persons WHERE userID = ? GROUP BY status';

...然後把它撿起來使用:

fetch_object:

$row->count_p

FETCH_ASSOC:

$row['count_p']

相關問題