Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mengulang Melalui Set Keputusan PDO Berbilang Kali?

Bagaimana untuk Mengulang Melalui Set Keputusan PDO Berbilang Kali?

Mary-Kate Olsen
Lepaskan: 2024-10-29 14:56:02
asal
1020 orang telah melayarinya

How to Iterate Through a PDO Result Set Multiple Times?

Mengulangi Melalui Set Keputusan PDO dari Mula

Apabila beralih daripada kaedah MySQL SELECT kepada kaedah PDO, menetapkan semula penunjuk tatasusunan untuk berulang melalui keputusan yang ditetapkan beberapa kali boleh mencabar. Ini disebabkan oleh perbezaan dalam cara kaedah ini mengendalikan penunjuk tatasusunan.

Dalam kod yang disediakan, gelung sementara pertama berjaya melelaran melalui tatasusunan yang diambil bermula dari baris sifar. Walau bagaimanapun, gelung while kedua mengembalikan set kosong kerana kaedah fetch() PDO memajukan penuding tatasusunan pada setiap panggilan.

Untuk mencapai gelagat yang diingini, seseorang boleh menyimpan hasil dalam tatasusunan dan kemudian lelaran melalui tatasusunan itu beberapa kali. Berikut ialah contoh:

$pdo = new PDO('mysql:host=' . $host . ';dbname='.$database, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $pdo->prepare('SELECT * FROM mytable WHERE active = 1 ORDER BY name ASC');
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();

$rows = $stmt->fetchAll();

foreach ($rows as $r) {
    // first run
}

foreach ($rows as $r) {
    // second run
}
Salin selepas log masuk

Dengan menggunakan fetchAll(), semua baris daripada set hasil disimpan dalam tatasusunan $rows. Ini membolehkan anda mengulangi tatasusunan beberapa kali tanpa menetapkan semula penuding tatasusunan secara manual.

Atas ialah kandungan terperinci Bagaimana untuk Mengulang Melalui Set Keputusan PDO Berbilang Kali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan