2016-04-19 41 views
1

此查詢到MySQL:取(PDO :: FETCH_ASSOC)返回一個MySQL查詢的所有值到數組

SELECT `group_id` 
      FROM `j30_user_usergroup_map` 
      WHERE `user_id` =3065 

還是返回了以下結果:

enter image description here

然而,在PHP以下代碼:

$db = new PDO('mysql:host=localhost;dbname=', '', ''); 
    $sth = $db->prepare('SELECT `group_id` 
     FROM `j30_user_usergroup_map` 
     WHERE `user_id` =3065'); 
    $sth->execute(); 
    $result = $sth->fetch(PDO::FETCH_ASSOC);   
    print_r($result); 

返回:

([group_id] => 2) 

我想要的陣列,而不僅僅是第一的所有元素,如所描述here

+0

環路或http://php.net/ manual/zh/pdostatement.fetchall.php – AbraCadaver

+0

FYI,如果你沒有約束你的價值,那麼使用'PDO'確實沒有意義。利用它提供的附加安全性。而你正在尋找'使用fetchall()':http://php.net/manual/en/pdostatement.fetchall.php – Marcus

+0

PDOStatement對象::取 - 取**下一行**從結果集 – AbraCadaver

回答

1

你要解決這個問題,通過fetchAll()改變fetch()或使用while並返回一個新的數組雙向的。

1)使用fetchall計算策略

變化:

$result = $sth->fetch(PDO::FETCH_ASSOC);  

通過:

2)雖然計算策略

$items = array(); 
while($row = $sth->fetch(PDO::FETCH_ASSOC)){ 
    $items[] = $row; 
}  
+0

fetchAll有效,但在我提供的手冊鏈接中,使用了提取。 –

+0

從手動狀態鏈接「PDOStatement對象::獲取 - 從獲取的結果集**的下一行**」 – AbraCadaver

+1

@NunoNogueira SE quiser頗得perguntar吶versão和葡萄牙語做網站http://pt.stackoverflow.com/: ) – rray