Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengendalikan Senarai Parameter Bersaiz Dinamik dalam Penyata Disediakan MySQL?
Apabila membina pernyataan yang disediakan MySQL dalam PHP, persoalan tentang cara mengendalikan pertanyaan dengan bilangan argumen yang berubah-ubah timbul. Sebagai contoh, pertimbangkan pertanyaan seperti ini:
SELECT `age`, `name` FROM `people` WHERE id IN (12, 45, 65, 33)
Bilangan ID dalam klausa IN berbeza dengan setiap pelaksanaan.
Pelbagai pendekatan wujud untuk menangani cabaran ini:
Penyelesaian 1: Pembolehubah Dummy dan Berbilang Panggilan
Penyelesaian 2: Pertanyaan Tidak Disediakan
Walau bagaimanapun, pilihan lain menawarkan kecekapan yang lebih baik:
Jadual Sementara Pendekatan
Klausa IN Dinamik
Contohnya:
$dbh = new PDO(...); $parms = [12, 45, 65, 33]; $inclause = implode(',', array_fill(0, count($parms), '?')); // = ?,?,?,? $preparesql = sprintf('SELECT age, name FROM people WHERE id IN (%s)', $inclause); $st = $dbh->prepare($preparesql); $st->execute($parms);
Pendekatan pertama mungkin lebih cekap untuk set besar, manakala yang kedua adalah sesuai untuk yang lebih kecil.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Senarai Parameter Bersaiz Dinamik dalam Penyata Disediakan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!