まず、mysql_xxx()
関数は非推奨です。使用はお勧めしません。代わりに推奨される PHP の代替手段が 2 つありmysqli()
ますPDO
。
古いmysql_xxx()
関数では、レコードセットをループするために使用できません。foreach
ただし、どちらの新しい代替 APIもIterator
インターフェイスを実装しているため、これが可能です。
はい、foreach
PHP でレコードセットをループするために使用することは可能ですが、古い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
違いがないため、これはあなたの友人が正しくないところです。からに切り替えても、コードのパフォーマンスに違いはありません。彼らはボンネットの下で同じことをします。この場合、実際には単なる「シンタックス シュガー」です。while
foreach
while
foreach
foreach
foreach
ループを行う予定がない場合でも、これらの新しい API のいずれかに切り替えることを強くお勧めします。なぜなら、古いmysql
関数は非推奨であり、将来の PHP から完全に削除される可能性が高いためです。バージョン。したがって、コードを将来も実行し続けたい場合は、今すぐ切り替える必要があります。