まず、mysql_xxx()関数は非推奨です。使用はお勧めしません。代わりに推奨される PHP の代替手段が 2 つありmysqli()ますPDO。
古いmysql_xxx()関数では、レコードセットをループするために使用できません。foreach
ただし、どちらの新しい代替 APIもIteratorインターフェイスを実装しているため、これが可能です。
はい、foreachPHP でレコードセットをループするために使用することは可能ですが、古いmysql_xxx()関数ではできません。
次のようなコードを記述できます。
$conn = new mysqli(....);
foreach ( $conn->query('SELECT ....') as $row ) {
print_r($row);
}
またはこのように:
$db = new PDO('mysql:....', $user, $pass);
foreach ($db->query('SELECT ....') as $row) {
print_r($row);
}
そうは言っても、これは PHP v5.4 以降でのみ可能であることに注意してくださいmysqli。そのため、PHP バージョンを最新にする必要があります。PDO一方、この機能は古くからサポートされています。
もちろん、どちらもループを使用することもできます。実際にはとここにwhile違いがないため、これはあなたの友人が正しくないところです。からに切り替えても、コードのパフォーマンスに違いはありません。彼らはボンネットの下で同じことをします。この場合、実際には単なる「シンタックス シュガー」です。whileforeachwhileforeachforeach
foreachループを行う予定がない場合でも、これらの新しい API のいずれかに切り替えることを強くお勧めします。なぜなら、古いmysql関数は非推奨であり、将来の PHP から完全に削除される可能性が高いためです。バージョン。したがって、コードを将来も実行し続けたい場合は、今すぐ切り替える必要があります。