ホームページ > バックエンド開発 > PHPチュートリアル > mysqli クラスを使用する場合、foreach は 1 行しか取り出せないのに、while ループは複数行のデータを取り出せるのはなぜですか?

mysqli クラスを使用する場合、foreach は 1 行しか取り出せないのに、while ループは複数行のデータを取り出せるのはなぜですか?

WBOY
リリース: 2016-06-13 12:04:46
オリジナル
1132 人が閲覧しました

mysqli クラスを使用する場合、foreach は 1 行しか取り出せないのに、while ループは複数行のデータを取り出せるのはなぜですか?
初心者なので質問があります。mysqliクラスを使用していますが、foreach関数で最初の行しか取り出せません。他のものは while で取り出せるのですが、なぜでしょうか。


$mysqlii=new mysqli("localhost","root","root","test");

$sql="select * ユーザーから";

$rs=$mysqlii->query($sql,MYSQLI_STORE_RESULT);

foreach($rs->
fetch_row() as $key=>$ v2){

print_r( $v2); //ここで取り出せるのは最初の行のみです

}

//while(list($a, $b, $c,$d)=$rs->fetch_array()) 5 行またはすべてのデータをフェッチできます
//
//echo $a." ".$b." " .$c."
";


?>------解決策----------- ---- ----

foreach($rs->fetch_row() as $key=>$v2){

print_r( $v2);ここで最初のものを取り出すことができます。 行データ

}
は、ループの最初の行の全列のデータを出力する機能を実現するために、このように記述されます。
$rs->fetch_row() は配列を返します。 ------解決策---------

foreach($rs->fetch_row() as $key=> >fetch_array() as $key=>$v2){

print_r( $v2) // ここではデータの最初の行のみをフェッチできます

}

------解決策----------------------



引用: 引用:
foreach($rs->fetch_row() as $key=>$v2){

print_r( $v2); fetched here
}
このように書くことで実現される機能は、最初の行のすべての列のデータをループアウトすることです。
$rs->fetch_row() は配列を返します。



foreach($rs->fetch_row() を使用して 2 次元配列を使用することも検討しました...


これはまだです間違っています!
foreach($rs->fetch_row() as $v2)
$v2 を出力すると、最初の行の各列のデータが出力されます。
は文字列ではありません。
この場合、 foreach($v2 as $v3)

while($ary=$rs->fetch_row())
{
foreach($ary as $key=>$v2){
print_r($v2);
}
}
これでOKです。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート