PHP中的mysql_fetch_all是一個非常有用的函數,它可以從一次查詢中返回所有結果的行。這個函數是在PHP5.2之后才被添加進來的,所以在使用它之前我們需要確保我們的PHP版本符合要求。下面就讓我們來深入了解一下這個函數吧。
讓我們舉個例子來講解這個函數的使用。如果我們想從一個名為“students”的表中獲取所有學生的姓名和年齡,我們可以這樣寫:
$mysqli = new mysqli("localhost", "root", "password", "database"); $result = $mysqli->query("SELECT name, age FROM students"); $data = $result->fetch_all(MYSQLI_ASSOC); print_r($data);
這段代碼首先建立了一個與數據庫的連接,然后執行一個查詢來獲取結果。注意到我們使用了MySQLi面向對象的接口,這是因為該函數僅適用于MySQLi擴展。
fetch_all函數有一個選擇參數,它允許我們指定我們想要返回的數組類型。我們可以使用MYSQLI_NUM, MYSQLI_ASSOC和MYSQLI_BOTH,分別表示返回索引數組、關聯數組或同時返回兩者。在上面的例子中,我們選擇了MYSQLI_ASSOC以返回一個關聯數組。
接下來,下面的示例代碼展示了如何使用fetch_all從數據庫中獲取所有學生的姓名和年齡,然后將結果迭代到HTML表格中:
$mysqli = new mysqli("localhost", "root", "password", "database"); $result = $mysqli->query("SELECT name, age FROM students"); $data = $result->fetch_all(MYSQLI_ASSOC); echo "
" . $row["name"] . " | "; echo "" . $row["age"] . " | "; echo "
這個示例代碼使用了一個foreach循環來迭代我們從數據庫中獲取到的所有行。然后,我們遍歷每一行,并將結果輸出到HTML表格中。
fetch_all函數還有一個重載版本,它使用fetch_array函數來獲取數據。我們可以使用這個函數來指定其他的MYSQLI常量,例如MYSQLI_BOTH來同時返回關聯數組和索引數組。
總而言之,mysql_fetch_all是一個非常有用的函數,它提供了一種簡單的方法來獲取所有結果行,從而方便我們進行后續的處理和使用。在您的下一個PHP項目中一定要嘗試一下這個函數。