2010-11-17 89 views
0

我正在使用PHP5和MySql,我想知道是否有自動設置變量而不是全部寫出變量的方法?我目前正在使用的代碼從數據庫查詢中設置變量的更好方法

像這樣:

$sSQL = "SELECT * FROM myTable"; 
$result = mysqli_query($dbi,$SQL); 

if(mysqli_num_rows($result)==0){} 
else 
{ 
    //loop and set array 
    while ($row = mysqli_fetch_assoc($result)) { 
    $field1 = $row['field1']; 
    $field2 = $row['field2']; 
    $field3 = $row['field3']; 
    } 

    $newArray[] = (array(
     "field1" => "$field1", 
     "field2" => "$field2", 
     "field3" => "$field3" 
    )); 

基本上我的變量設置爲名稱相同的SQL字段名,然後設置一個數組一樣。我想知道是否有更快的方法來完成這個工作,用手寫出所有的名字? (我也知道select是壞的,它只是爲了說明!)

回答

2

一種選擇是在SQL查詢中使用顯式字段名稱並直接分配每個結果行。此外,選擇列*reduces performance並使您的查詢意圖不太清楚。

$sSQL = "SELECT field1, field2, field3 FROM myTable"; 

// other code 

while ($row = mysqli_fetch_assoc($result)) { 
    $newArray[] = $row; 
} 

但是,如果你只是想變量動態創建然後extract()可能做的伎倆。

0

你爲什麼寫「mysqli」?爲什麼是我?

關於你的問題:最常用的方法(甚至最簡單的方法)是通過mysql_fetch_object,然後你描述一個變種,如 $ var = $ row-> FIELD;

mysql_fetch_assoc是另一種可能的特徵,但第一個沒有工作比assoc命令要好得多......

+1

你真的應該對http://php.net/manual/en/book.mysqli.php被閱讀了 – stillstanding 2010-11-17 12:35:16