迴圈 PHP MySQLi 獲取陣列函式

Mehvish Ashiq 2023年1月30日
  1. 迭代 mysqli_fetch_array() 函式
  2. まとめ
迴圈 PHP MySQLi 獲取陣列函式

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 獲取陣列函式 - 資料

mysqli_fetch_array() 函式使用 MYSQLI_NUM 模式

讓我們編寫以下程式,使用 mysqli_fetch_array() 函式從名為 db_students 的學生資料庫中讀取資料。以下程式碼將連線資料庫並在失敗時顯示失敗訊息。

與資料庫成功連線後,它將使用 mysqli_query 函式讀取記錄並將它們儲存到 $result 變數中。mysqli_fetch_array() 將使用該結果變數和 MYSQLI_NUM(它的行為類似於 mysqli_fetch_row() 函式)作為引數,以將當前行顯示為數字陣列,其中索引範圍從 0n-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_num 模式獲取資料

mysqli_fetch_array() 函式使用 MYSQLI_ASSOC 模式

在這裡,由於引數 MYSQLI_ASSOCmysqli_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_assoc 模式獲取資料

mysqli_fetch_array() 函式使用 MYSQLI_BOTH 模式

使用帶有引數 MYSQLI_BOTHmysqli_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_both 模式獲取資料

迴圈 mysqli_fetch_array() 函式

我們將使用以下程式碼迭代 mysqli_query 並將輸出與學生表記錄進行比較。

請記住,你可以迴圈 mysqli_fetch_array()MYSQLI_ASSOCMYSQLI_NUMMYSQLI_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++;
    }
?>

輸出:

迴圈 mysqli 獲取陣列函式 - 迴圈

你可以檢視 IDFIRST_NAMELAST_NAMEAGE 並將其與名為 tb_students 的下表進行比較。

迴圈 mysqli 獲取陣列函式 - 資料

まとめ

上面的討論得出結論,mysqli_fetch_array() 函式幫助我們從資料庫中檢索資料。

根據我們的需要和要求,我們可以使用它的輸出模式,是否通過列索引或列名訪問值,或兩者兼而有之。然後,我們可以迴圈結果來檢視錶的每條記錄。

作者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

相關文章 - MySQL PHP