程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中mysqli 處理查詢結果集的幾個方法,mysqli查詢結果

php中mysqli 處理查詢結果集的幾個方法,mysqli查詢結果

編輯:關於PHP編程

php中mysqli 處理查詢結果集的幾個方法,mysqli查詢結果


  最近對php查詢mysql處理結果集的幾個方法不太明白的地方查閱了資料,在此整理記下

Php使用mysqli_result類處理結果集有以下幾種方法

fetch_all() 抓取所有的結果行並且以關聯數據,數值索引數組,或者兩者皆有的方式返回結果集。 fetch_array() 以一個關聯數組,數值索引數組,或者兩者皆有的方式抓取一行結果。 fetch_object() 以對象返回結果集的當前行。 fetch_row() 以枚舉數組方式返回一行結果 fetch_assoc() 以一個關聯數組方式抓取一行結果。 fetch_field_direct() 以對象返回結果集中單字段的元數據。 fetch_field() 以對象返回結果集中的列信息。 fetch_fields() 以對象數組返回代表結果集中的列信息。

 

 

 

 

 

 

 

 

  

fetch_all (從結果集中取得所有行作為關聯數組)

  $sql="select * from user";
  $result=$link->query($sql);
  $row=$result->fetch_all(MYSQLI_BOTH);//參數MYSQL_ASSOC、MYSQLI_NUM、MYSQLI_BOTH規定產生數組類型
  $n=0;
  while($n<mysqli_num_rows($result)){
   echo "ID:".$row[$n]["id"]."用戶名:".$row[$n]["name"]."密碼:".$row[$n]["password"]."<br />";
   $n++;
  }

 

 fetch_array (以一個關聯數組,數值索引數組,或者兩者皆有的方式抓取一行結果)

        $sql="select * from user";
        $result=$link->query($sql);
        while($row=$result->fetch_array()){
            echo "ID:".$row["id"]."用戶名:".$row[1]."密碼:".$row["password"]."<br />";
        }
//fetch_array方法不再有結果時返回返回NULL
//其返回結果可以是關聯數組也可以是數值數組索引,故$row["id"]、$row[1]都可以

 

fetch_object (以對象返回結果集的當前行)

        $sql="select * from user";
        $result=$link->query($sql);
        while($row=$result->fetch_object()){
            echo "ID:".$row->id."用戶名:".$row->name."密碼:".$row->password."<br />";
        }
//如果無更多的行則返回NULL
//返回的結果是對象,要以對象的方式調用

 

fetch_row (以枚舉數組方式返回一行結果)

        $sql="select * from user";
        $result=$link->query($sql);
        while($row=$result->fetch_row()){
            echo "ID:".$row[0]."用戶名:".$row[1]."密碼:".$row[2]."<br />";
        }
//無更多行時返回NULL
//以數值下標調用數組,a[0]正確、a["id"]則不

 

fetch_assoc (以一個關聯數組方式抓取一行結果)

        $sql="select * from user";
        $result=$link->query($sql);
        while($row=$result->fetch_assoc()){
            echo "ID:".$row["id"]."用戶名:".$row["name"]."密碼:".$row["password"]."<br />";
        }
//無更多行時返回NULL
//以關聯索引訪問數組,a["id"]正確、a[0]則不

 

fetch_field_direct (以對象返回結果集中單字段的元數據既單列的信息)

        $sql="select * from user";
        $result=$link->query($sql);
        $n=0;
        while(1){
            if(!$row=$result->fetch_field_direct($n++)) break;
            echo "列名:".$row->name."所在表:".$row->table."數據類型:".$row->type."<br />";
        }
//fetch_field_direct($n)只返回單個列,所以得不斷調用該方法,沒有該列時返回false

 

fetch_field (以對象返回結果集中的列信息)

        $sql="select * from user";
        $result=$link->query($sql);
        while($row=$result->fetch_field()){
            echo "列名:".$row->name."所在表:".$row->table."數據類型:".$row->type."<br />";
        }
//該方法檢索所有的列
//以對象方式返回列信息
//返回對象屬性如:name - 列名,table - 該列所在的表名,type - 該列的類型,等

 

fetch_fields (以對象數組返回代表結果集中的列信息)

 

        $sql="select * from user";
        $result=$link->query($sql);
        $row=$result->fetch_fields();
        foreach($row as $val){
            echo "列名:".$val->name."所在表:".$val->table."數據類型:".$val->type."<br />";
        }
//該方法功能與目的fetch_field一樣
//不一樣的是該方法返回一個對象數組(如:echo $row[0]->name;輸出第一列的名字),而不是一次檢索一列

另:mysqli_result類還有其他方法

field_tell() 返回字段指針的位置 data_seek() 調整結果指針到結果集中的一個任意行 num_fields() 返回結果集中的字段數(列數) field_seek() 調整字段指針到特定的字段開始位置 free()  釋放與某個結果集相關的內存 fetch_lengths() 返回結果集中當前行的列長度 num_rows() 返回結果集中的行數

 

 

 

 

 

 

 

參考資料:php手冊(http://php.net/manual/zh/class.mysqli-result.php)

 

 


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved