php中mysqli處理查詢結(jié)果集的多個(gè)方法

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

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

fetch_all() 抓取所有的結(jié)果行并且以關(guān)聯(lián)數(shù)據(jù),數(shù)值索引數(shù)組,或者兩者皆有的方式返回結(jié)果集。
fetch_array() 以一個(gè)關(guān)聯(lián)數(shù)組,數(shù)值索引數(shù)組,或者兩者皆有的方式抓取一行結(jié)果。
fetch_object() 對(duì)象返回結(jié)果集的當(dāng)前行。
fetch_row() 以枚舉數(shù)組方式返回一行結(jié)果
fetch_assoc() 以一個(gè)關(guān)聯(lián)數(shù)組方式抓取一行結(jié)果。
fetch_field_direct() 以對(duì)象返回結(jié)果集中單字段的元數(shù)據(jù)。
fetch_field() 以對(duì)象返回結(jié)果集中的列信息
fetch_fields() 以對(duì)象數(shù)組返回代表結(jié)果集中的列信息

?

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

?

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

?

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

?

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

?

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

?

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

?

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

?

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

??fetch_all (從結(jié)果集中取得所有行作為關(guān)聯(lián)數(shù)組)

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

?fetch_array (以一個(gè)關(guān)聯(lián)數(shù)組,數(shù)值索引數(shù)組,或者兩者皆有的方式抓取一行結(jié)果)

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

?fetch_object (以對(duì)象返回結(jié)果集的當(dāng)前行)

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

?fetch_row (以枚舉數(shù)組方式返回一行結(jié)果)

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

?fetch_assoc (以一個(gè)關(guān)聯(lián)數(shù)組方式抓取一行結(jié)果)

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

?fetch_field_direct (以對(duì)象返回結(jié)果集中單字段的元數(shù)據(jù)既單列的信息)

$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."數(shù)據(jù)類型:".$row->type."<br />";         } //fetch_field_direct($n)只返回單個(gè)列,所以得不斷調(diào)用該方法,沒(méi)有該列時(shí)返回false

?fetch_field (以對(duì)象返回結(jié)果集中的列信息)

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

?fetch_fields (以對(duì)象數(shù)組返回代表結(jié)果集中的列信息)

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

另:mysqli_result類還有其他方法

field_tell() 返回字段指針的位置
data_seek() 調(diào)整結(jié)果指針到結(jié)果集中的一個(gè)任意行
num_fields() 返回結(jié)果集中的字段數(shù)(列數(shù))
field_seek() 調(diào)整字段指針到特定的字段開(kāi)始位置
free() ?釋放與某個(gè)結(jié)果集相關(guān)的內(nèi)存
fetch_lengths() 返回結(jié)果集中當(dāng)前行的列長(zhǎng)度
num_rows() 返回結(jié)果集中的行數(shù)

?

?

?

?

?

?

?

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

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享