2015-07-03 82 views
3

關於PDO :: fetchAll()的許多問題,但我仍然無法找到我的答案。我需要獲取我的結果,因爲它是由MySQL返回的。例如,如果我有列idnameage要返回這樣的:php PDO fetchAll(),簡單的結果

array(
    "id"=array(1,2,3), 
    "name"=array("xy","by","cy"), 
    "age" = array(32,34,35) 
) 

我知道我可以做一個函數,遍歷列表,並把它們手動在陣列中,但我想知道有一個使用fetchAll('magic')的直接方法。

+0

沒有沒有。使用'fetchAll()'你可以獲得所有的行爲subArray – Rizier123

+1

http://us3.php.net/manual/en/pdostatement.fetchall.php請參閱'PDO :: FETCH_COLUMN',這就像你會得到。 – Sammitch

+0

你可以通過'array_column'等來重新排列fetchAll結果列表。 – mario

回答

3

你可以這樣做。

<?php 
function returnResultAsArray() 
{ 
    $test=NULL; 
    // ..... connection and query here 
    $results = $query->fetchAll(PDO::FETCH_ASSOC); 
    foreach($results as $row) 
    { 
     $test['id'][]=$row['id']; 
     $test['name'][]=$row['name']; 
     $test['age'][]=$row['age']; 
    } 
    return $test; 
} 
?> 

讓我知道這對你的作品

+0

我有一個類似於這個的函數,但是我正在考慮一個簡單的方法,像'var_dump($ sth-> fetchAll(PDO :: FETCH_COLUMN | PDO :: FETCH_GROUP));'我不知道我應該使用哪種組合來獲得我想要的。 – Mohammad