2015-04-01 54 views
0

我想建立一個可重用的函數,以multidimansional數組爲我放入每個表名。 最喜歡我開始我的表白衣ID和想開始數組惠特ID,所以不能開始惠特0 :)。 foneticly--> $my_array[id]["email"]重複使用PDO查詢功能多維數組

因此,建立它我認爲「我需要什麼」,並發現:$count_colum,$total_row一個數據源本身。

我知道如何建立一個數組,但我不知道如何建立一個「變量」數組。 我也知道我不能使用PHP中的數組內:)(嘩嘩將有助於IFF你告訴我)
$my_array = array($row['id'] for ($i = 0; $i < $count_colum; $i++){...} 我也希望有人知道我的意思:)我是有點新的這一切;)

這是我走到這一步:

function make_MDA($tablename) 
{ 
    $dbh = new PDO("mysql:host='localhost';dbname='dbname', 'usr','pas'"); 
    $query = $dbh->prepare("SELECT * FROM `".$tablename."`"); 
    $query->execute(); 

    $count_colum = $query->columnCount(); 
    $result = $query->fetchAll(); 
    $total_row = count($result); 

    for ($i = 0; $i < $count_colum; $i++) 
    { 
     $meta = $query->getColumnMeta($i); 
     $column[] = $meta['name']; 
    } 
    foreach ($result as $row) 
    { 
     $my_array = array($row['id'] //this is where I'm stuck 
    } 
//  echo $column[3]; 
//  echo $total_row; 
//  echo $count_colum; 
} 

回答

1

這應該工作,沒有過於複雜的事情:

function make_MDA($tablename) 
{ 
    $dbh = new PDO("mysql:host='localhost';dbname='dbname', 'usr','pas'"); 
    $query = $dbh->prepare("SELECT * FROM `".$tablename."`"); 
    $query->execute(); 

    $result = $query->fetchAll(); 

    foreach ($result as $row) 
    { 
     $id = $row['id']; 
     $my_array[$id] = $row; 
    } 

    return $my_array; 
} 

我會做的數據庫連接一次在此功能之外。

+0

thnx,這totaly工作.... +1 4 U :) btw爲什麼你會做這個函數之外的$ dbh一次? – hexedecimal 2015-04-02 10:07:55

+0

因此,您可以使用此函數多次重複使用連接以用於不同的數據庫表。類似的原因,爲什麼你做功能。您需要知道構建數據庫連接是一個成本高昂的過程。這需要時間和資源。 – 2015-04-02 12:06:32