php处理结果集,php中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";???$n++;
}
fetch_array?(以一個關聯數組,數值索引數組,或者兩者皆有的方式抓取一行結果)
$sql="select?*?from?user";????????$result=$link->query($sql);????????while($row=$result->fetch_array()){????????????echo?"ID:".$row["id"]."用戶名:".$row[1]."密碼:".$row["password"]."
";
}//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."
";
}//如果無更多的行則返回NULL//返回的結果是對象,要以對象的方式調用
fetch_row?(以枚舉數組方式返回一行結果)
$sql="select?*?from?user";????????$result=$link->query($sql);????????while($row=$result->fetch_row()){????????????echo?"ID:".$row[0]."用戶名:".$row[1]."密碼:".$row[2]."
";
}//無更多行時返回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"]."
";
}//無更多行時返回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."
";
}//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."
";
}//該方法檢索所有的列
//以對象方式返回列信息
//返回對象屬性如: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."
";
}//該方法功能與目的fetch_field一樣
//不一樣的是該方法返回一個對象數組(如:echo?$row[0]->name;輸出第一列的名字),而不是一次檢索一列
另:mysqli_result類還有其他方法
field_tell()
返回字段指針的位置
data_seek()
調整結果指針到結果集中的一個任意行
num_fields()
返回結果集中的字段數(列數)
field_seek()
調整字段指針到特定的字段開始位置
free()
釋放與某個結果集相關的內存
fetch_lengths()
返回結果集中當前行的列長度
num_rows()
返回結果集中的行數
本文轉自孤舟夜航之家博客51CTO博客,原文鏈接http://blog.51cto.com/cysky/1701276如需轉載請自行聯系原作者
cysky
總結
以上是生活随笔為你收集整理的php处理结果集,php中mysqli 处理查询结果集的几个方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 非一体式台式计算机,一体台式机推荐及介绍
- 下一篇: java游戏重新开始_问题1:java问