迴圈 PHP MySQLi 獲取陣列函式
![迴圈 PHP MySQLi 獲取陣列函式](/img/MySQL/feature-image---loop-php-mysqli-fetch-array-function.webp)
MySQLi fetch 函式用於從資料庫伺服器訪問資料。獲取資料後,你還可以遍歷 MySQLi
查詢。
在本文中,我們將看到 mysqli_fetch_array()
函式的使用以及迭代訪問資料的方法。
這個擴充套件是在 PHP 5.0.0 版本中引入的,設計它的目的是與 MySQL 4.1.13 或更高版本一起工作。我們在本教程中使用 PHP 版本 7.4.1 和 phpMyAdmin。
你可以從其官方網站下載 XAMPP。 (如果你有 XAMPP,則不必單獨安裝 MySQL 和 PHP)。
迭代 mysqli_fetch_array()
函式
mysqli_fetch_array()
用於使用 $result
作為第一個引數從資料庫中檢索當前行的資料,將輸出儲存為關聯陣列、數值陣列或兩者(取決於第二個引數)。現在,我們的學生資料庫中有以下資料。
mysqli_fetch_array()
函式使用 MYSQLI_NUM
模式
讓我們編寫以下程式,使用 mysqli_fetch_array()
函式從名為 db_students
的學生資料庫中讀取資料。以下程式碼將連線資料庫並在失敗時顯示失敗訊息。
與資料庫成功連線後,它將使用 mysqli_query
函式讀取記錄並將它們儲存到 $result
變數中。mysqli_fetch_array()
將使用該結果變數和 MYSQLI_NUM
(它的行為類似於 mysqli_fetch_row()
函式)作為引數,以將當前行顯示為數字陣列,其中索引範圍從 0
到 n-1
。
示例程式碼:
<?php
$host = "localhost";
$username = "root";
$password = "";
$database = "db_students";
$connection = mysqli_connect($host, $username, $password, $database);
if (mysqli_connect_errno()) {
echo "Database connection failed.";
}
$sql = "SELECT * FROM tb_students";
$result = mysqli_query($connection, $sql);
$row = mysqli_fetch_array($result,MYSQLI_NUM);
print_r($row)
?>
輸出:
mysqli_fetch_array()
函式使用 MYSQLI_ASSOC
模式
在這裡,由於引數 MYSQLI_ASSOC
,mysqli_fetch_array()
函式的行為類似於 mysqli_fetch_assoc()
,並且表的列名將顯示為陣列的索引。練習以下程式碼並觀察輸出。
示例程式碼:
<?php
$host = "localhost";
$username = "root";
$password = "";
$database = "db_students";
$connection = mysqli_connect($host, $username, $password, $database);
if (mysqli_connect_errno()) {
echo "Database connection failed.";
}
$sql = "SELECT * FROM tb_students";
$result = mysqli_query($connection, $sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
print_r($row)
?>
輸出:
mysqli_fetch_array()
函式使用 MYSQLI_BOTH
模式
使用帶有引數 MYSQLI_BOTH
的 mysqli_fetch_array()
函式會將資料儲存到我們可以使用列名和列索引訪問的陣列中。練習以下程式碼並檢視輸出。
示例程式碼:
<?php
$host = "localhost";
$username = "root";
$password = "";
$database = "db_students";
$connection = mysqli_connect($host, $username, $password, $database);
if (mysqli_connect_errno()) {
echo "Database connection failed.";
}
$sql = "SELECT * FROM tb_students";
$result = mysqli_query($connection, $sql);
$row = mysqli_fetch_array($result,MYSQLI_BOTH);
print_r($row)
?>
輸出:
迴圈 mysqli_fetch_array()
函式
我們將使用以下程式碼迭代 mysqli_query
並將輸出與學生表記錄進行比較。
請記住,你可以迴圈 mysqli_fetch_array()
、MYSQLI_ASSOC
、MYSQLI_NUM
和 MYSQLI_BOTH
的所有模式。使用 mysqli_fetch_array()
時,你必須將其作為引數傳遞。
<?php
$host = "localhost";
$username = "root";
$password = "";
$database = "db_students";
$connection = mysqli_connect($host, $username, $password, $database);
if (mysqli_connect_errno()) {
echo "Database connection failed.";
}
$sql = "SELECT * FROM tb_students";
$result = mysqli_query($connection, $sql);
$std_num=0;
while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
echo "Student Number ".$std_num."<br>";
echo "ID: ".$row['ID']."<br>";
echo "First Name: ".$row['FIRST_NAME']."<br>";
echo "Last Name: ".$row['LAST_NAME']."<br>";
echo "Age: ".$row['AGE']."<br>";
echo "<br><br>";
$std_num++;
}
?>
輸出:
你可以檢視 ID
、FIRST_NAME
、LAST_NAME
、AGE
並將其與名為 tb_students
的下表進行比較。
まとめ
上面的討論得出結論,mysqli_fetch_array()
函式幫助我們從資料庫中檢索資料。
根據我們的需要和要求,我們可以使用它的輸出模式,是否通過列索引或列名訪問值,或兩者兼而有之。然後,我們可以迴圈結果來檢視錶的每條記錄。