在 PHP 中,查詢結果有時會以不同的形式傳回,可能是一個對象,也可能是一個數組,有時我們想要的結果是一個數組。因此,這裡介紹幾種將查詢結果轉換為陣列的方法,讓查詢結果更符合我們的需求。
fetch_assoc() 方法傳回一個關聯數組,其中的鍵名是資料庫中的欄位名,鍵值則是記錄中的對應值。 fetch_assoc() 方法傳回查詢結果的一行數據,呼叫一次該方法只能傳回一行,如果要讀取其他行,則需要再次呼叫該方法。
範例程式碼如下:
// 假设 $conn 是 MySQL 数据库连接对象 $sql = "SELECT id, name, age FROM users"; $result = $conn->query($sql); // fetch_assoc 方法返回一个关联数组 while ($row = $result->fetch_assoc()) { echo $row['id'] , $row['name'] , $row['age']; }
fetch_array() 方法傳回一個既包含數字索引也包含關聯索引的數組,它類似於一個關聯數組和一個索引數組的組合。數字索引對應的是查詢結果中的列的索引,關聯索引對應的是資料庫中的欄位名稱。這種方式與fetch_assoc() 方法類似,只是傳回的陣列方式不同。
範例程式碼如下:
// 假设 $conn 是 MySQL 数据库连接对象 $sql = "SELECT id, name, age FROM users"; $result=$conn->query($sql); // fetch_array 方法返回一个包含关联和数字索引的数组 while ($row = $result->fetch_array()) { echo $row['id'] , $row['name'] , $row['age']; }
fetch_all() 方法傳回一個全部結果集,此方法需要在mysqli 擴充版本5.3.0以上才能使用,且只支援使用MySQL 擴充驅動。傳回的結果是一個二維數組,每個子數組是一行數據,其中子數組中的元素對應的是該行記錄中的每個字段。使用該方法可以簡化程式碼。
範例程式碼如下:
// 假设 $conn 是 MySQL 数据库连接对象 $sql = "SELECT id, name, age FROM users"; $result = $conn->query($sql); // fetch_all 方法返回一个二维数组 $data = $result->fetch_all(); foreach ($data as $row) { echo $row[0] , $row[1], $row[2]; }
總結
利用fetch_assoc() 方法可以取得到以欄位名為鍵名的關聯數組,利用fetch_array() 方法傳回一個既包含數字索引也包含關聯索引的數組,而fetch_all() 方法則可以直接傳回一個全部結果集的二維數組。根據具體情況,選擇使用不同的方法來取得查詢結果數組,可以幫助我們更方便地操作資料。
以上是php怎麼將查詢結果轉為陣列(三種方法)的詳細內容。更多資訊請關注PHP中文網其他相關文章!