Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menggunakan Tatasusunan dengan Cekap dengan Penyata Disediakan MySQL dalam Klausa WHERE ... IN()?

Bagaimanakah Saya Boleh Menggunakan Tatasusunan dengan Cekap dengan Penyata Disediakan MySQL dalam Klausa WHERE ... IN()?

Mary-Kate Olsen
Lepaskan: 2024-12-29 04:06:13
asal
196 orang telah melayarinya

How Can I Efficiently Use Arrays with MySQL Prepared Statements in WHERE ... IN() Clauses?

Menggunakan Tatasusunan dalam Penyata Disediakan MySQL untuk WHERE ... IN(...) Pertanyaan

Apabila membuat pertanyaan pangkalan data menggunakan pernyataan yang disediakan, adalah disyorkan untuk menyediakan satu kenyataan dan melaksanakannya beberapa kali untuk meningkatkan prestasi. Walau bagaimanapun, apabila berurusan dengan pelbagai ID untuk pertanyaan WHERE ... IN(...), menyusun keputusan secara manual selepas pelaksanaan boleh menjadi tidak cekap.

Pendekatan alternatif ialah menggunakan teknik yang melibatkan penciptaan senarai ruang letak yang dipisahkan koma (?) berdasarkan panjang tatasusunan. Pertimbangkan contoh berikut:

$ids = array(1,5,18,25);

// Create a string containing ?,?,?
$clause = implode(',', array_fill(0, count($ids), '?'));

$stmt = $mysqli->prepare('SELECT * FROM somewhere WHERE `id` IN (' . $clause . ') ORDER BY `name`;');

call_user_func_array(array($stmt, 'bind_param'), $ids);
$stmt->execute();

// Loop through results
Salin selepas log masuk

Dalam pendekatan ini, implode(...) mencipta rentetan dengan bilangan ruang letak yang diperlukan. Fungsi call_user_func_array(...) kemudian mengikat nilai daripada tatasusunan $ids kepada ruang letak. Dengan menggunakan teknik ini, anda boleh mengisih hasil menggunakan fungsi pengisihan terbina dalam MySQL, menghapuskan keperluan untuk pengisihan manual.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Tatasusunan dengan Cekap dengan Penyata Disediakan MySQL dalam Klausa WHERE ... IN()?. 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