最近對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 (從結果集中取得所有行作為關聯數組)
$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(
#以物件傳回結果集中的列資訊 | ) |
## 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() | #調整欄位指標到特定的欄位開始位置 |
以上是php中mysqli處理查詢結果集的多個方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!