php是一種常用的程式語言,常用於開發Web應用程式。查詢資料庫是php常用的操作之一,查詢結果需要以陣列的形式傳回。本文將介紹如何將查詢結果轉換為二維數組。
一、查詢結果
在php中,使用mysqli或PDO連接資料庫進行查詢操作。以下是使用mysqli查詢的範例程式碼:
$mysqli = new mysqli("localhost", "user", "password", "database"); $sql = "SELECT name, age FROM users"; $result = $mysqli->query($sql);
使用PDO的範例程式碼:
$pdo = new PDO("mysql:host=localhost;dbname=database", "user", "password"); $sql = "SELECT name, age FROM users"; $result = $pdo->query($sql);
無論是mysqli還是PDO,執行查詢語句後,都會傳回一個結果集物件。
二、將結果轉換為陣列
將查詢結果轉換為陣列有兩種方法,一種是使用mysqli或PDO自帶的fetch函數,一行一行地轉換;另一種是一次將整個結果集取出到陣列中。
fetch方法用於從結果集中取出一行數據,並將指標向下移動一行。可以循環呼叫fetch()方法以取得整個結果集。以下是範例程式碼:
// mysqli示例代码 $rows = array(); while ($row = $result->fetch_assoc()) { $rows[] = $row; } // PDO示例代码 $rows = array(); while ($row = $result->fetch(PDO::FETCH_ASSOC)) { $rows[] = $row; }
以上程式碼使用fetch_assoc()或FETCH_ASSOC取出的是關聯數組,也可以使用fetch_array()或FETCH_BOTH取得包含數字和關聯鍵的數組,fetch_object()或FETCH_OBJ返回物件。
fetch_all()方法是將整個結果集一次取出到陣列中。 fetch_all()是PDO中的函數,mysqli需要使用get_result()來取得結果集物件。以下是範例程式碼:
// mysqli示例代码 $rows = $result->get_result()->fetch_all(MYSQLI_ASSOC); // PDO示例代码 $rows = $result->fetch_all(PDO::FETCH_ASSOC);
以上程式碼將結果集一次取出,並將結果集的所有資料以關聯數組的形式儲存在一個二維數組中。
三、總結
以上介紹的兩種方法各有優缺點,使用fetch()方法可以逐行處理結果,更加靈活,但需要大量的程式碼來處理每一行數據。而fetch_all()方法可以一次將整個結果取出,程式碼簡單,但是當資料量過大時,可能會佔用過多的記憶體。
在實際開發中,可以根據實際情況選擇適合的方法。如果查詢結果集較小,可以使用fetch()方法;否則,建議使用fetch_all()方法。
以上是php將查詢結果弄成二維數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!