2012-12-19 80 views
3

我試圖讓mysql返回將由php解析爲數組的列名稱。試想一下:在mysql語句中使用方括號構建數組

$sql = "SELECT user.id AS `user[id]`, user.name AS `user[name]`, 
      user_info.address AS `user[info][address]` 
      user_info.zip AS `user[info][zip]` 
     FROM user JOIN user_info ON user.id = user_info.id"; 
$stmt = $conn->query($sql); 
$results = $stmt->fetchAll(); 

我想$results看起來是這樣的:

array(
    [0] => array(
     [id] => 2, 
     [name] => 'john', 
     [info] => array(
      [address] => '1234 Main st', 
      [zip] => 12345 
     ) 
    ) 
    [1] => array(
     [id] => 3, 
     [name] => 'tom', 
     [info] => array(
      [address] => '2811 Second Ave.', 
      [zip] => 98765 
     ) 
    ) 
) 

有沒有辦法做到這一點不通過的結果手動循環。我想要的功能類似於php如何處理表單提交中的方括號(例如index.php?user[id]=2&user[name]=tom

+0

重複http://stackoverflow.com/questions/5111646/php-create-a-nested-array-from-mysql-data – Tyron

+0

@Tyron Nope,實際上是通過構建它從一些邏輯,所有的邏輯在這個查詢中,我只是想讓PHP來做它的事情 – qwertymk

回答

0

編號SQL不能以這種方式工作,MySQL庫和它的PHP綁定都不支持這一點。如果你想有類似的東西,那麼你需要一個真正的面向對象的數據庫及其PHP綁定。