sql >> データベース >  >> RDS >> Mysql

foreachループが期待どおりに機能しないのはなぜですか?

    mysqli_query() foreach()で使用できる配列または配列オブジェクトを返しません。 mysqli_query()の戻りタイプはリソースです。 2番目のソリューションのように、ループでフェッチします。

    for()の代わりにwhile()を使用する方が簡単です:

    $cast_list = mysqli_query($dblink, $sql);
    while ($role = mysqli_fetch_assoc($cast_list)) {
        echo "<tr><td width='50%'>".$role['appeared_as']."</td>";
    }
    

    結果セットの最後でフェッチされた行がNULLになると、ループは自動的に終了します。ループの前に行数を知る必要はありません。

    コメントを再確認してください:

    いくつかの事実を調べた後 、上記の私の答えは完全には真実ではないことを認めなければなりません。または、PHPの一部のバージョンには当てはまりません。

    PHP 5.4では、mysqli_resultリソースがIteratorを追加しました 機能、実際にできる foreach()で使用します 。しかし、あなたのホストは明らかに古いバージョンのPHPを使用しています。

    ベストプラクティスは、同じバージョンの allで開発することです。 展開先のソフトウェアなので、この種の驚きにとらわれることはありません。




    1. Javaを使用してmysqlでユーザーを作成する

    2. DjangoとPostgresqlをDockerとリンクする

    3. MySQL初心者向けのDevOpsデータベース用語集

    4. TRY_CONVERT()がSQLServerでどのように機能するか