首頁 > 資料庫 > mysql教程 > php中mysqli處理查詢結果集的多個方法

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

藏色散人
發布: 2019-04-18 11:48:27
轉載
2987 人瀏覽過

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

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

#fetch_all() 抓取所有的結果行並且以關聯數據,數值索引數組,或兩者皆有的方式傳回結果集。
fetch_array() #以關聯數組,數值索引數組,或兩者皆有的方式抓取一行結果。
fetch_object() #以物件傳回結果集的目前行。
fetch_row() #以枚舉數組方式傳回一行結果
fetch_assoc() 以一個關聯陣列方式抓取一行結果。
fetch_field_direct() 以物件傳回結果集中單一欄位的元資料。
fetch_field() #以物件傳回結果集中的列資訊
fetch_fields() #以物件陣列傳回代表結果集中的列資訊
#

 

 

 

 

 

 

 

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

1

2

3

4

5

6

7

8

  $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 (以一個關聯數組,數值索引數組,或兩者皆有的方式抓取一行結果)

1

2

3

4

5

6

7

 $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 (#以物件傳回結果集的目前行)

##

1

2

3

4

5

6

7

   $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

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

1

2

3

4

5

6

7

  $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 (以一個關聯陣列方式抓取一行結果)

#

1

2

3

4

5

6

7

 $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 (以物件傳回結果集中單一欄位的元資料既單列的訊息)

1

2

3

4

5

6

7

8

$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

(

#以物件傳回結果集中的列資訊

1

2

3

4

5

6

7

8

       $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 (以物件陣列傳回代表結果集中的列資訊
#

1

2

3

4

5

6

7

8

    $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)###

以上是php中mysqli處理查詢結果集的多個方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板