Bagaimana untuk Lelaran Melalui PDO Ambil Keputusan Berbilang Kali?

Barbara Streisand
Lepaskan: 2024-10-30 07:52:28
asal
682 orang telah melayarinya

How to Iterate Through PDO Fetch Results Multiple Times?

Menetapkan Semula Iterator untuk Traversal Tatasusunan Berulang dalam PDO

PDO menyediakan pendekatan yang lebih mantap dan berorientasikan objek untuk interaksi pangkalan data. Apabila beralih daripada kaedah MySQL SELECT kepada PDO, menetapkan semula penuding tatasusunan untuk mengulang melalui hasil yang diambil beberapa kali boleh menjadi mencabar.

Untuk mencapai ini dalam MySQL, mysql_data_seek($result, 0) digunakan. Dengan PDO, tetapan semula penunjuk mudah tidak disokong. Sebaliknya, anda perlu mempertimbangkan pendekatan yang berbeza.

Penyelesaian: Simpan dan Gelung Semula Tatasusunan

Penyelesaian terletak pada menyimpan hasil yang diambil ke dalam tatasusunan dan kemudian menggelung melalui tatasusunan dua kali. Dengan berbuat demikian, anda melepaskan diri daripada lelaran PDO dan mendapat kawalan ke atas penunjuk dalaman tatasusunan.

Begini caranya:

<code class="php">$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 of the loop
}

foreach ($rows as $r) {
    // Second run of the loop
}</code>
Salin selepas log masuk

Pendekatan ini mengelakkan kerumitan menetapkan semula lelaran PDO dan menyediakan penyelesaian yang lebih mudah untuk mengulangi hasil yang diambil beberapa kali.

Atas ialah kandungan terperinci Bagaimana untuk Lelaran Melalui PDO Ambil Keputusan 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!