Rumah >pangkalan data >tutorial mysql >Bagaimana Menggunakan Penyata Disediakan WordPress dengan Berbilang Nilai dalam Keadaan IN()?

Bagaimana Menggunakan Penyata Disediakan WordPress dengan Berbilang Nilai dalam Keadaan IN()?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-12 19:09:02637semak imbas

How to Use WordPress Prepared Statements with Multiple Values in the IN() Condition?

Penyata Disediakan WordPress dengan Berbilang Nilai Menggunakan Keadaan DALAM

Apabila menggunakan pernyataan yang disediakan dalam WordPress dengan berbilang nilai dalam keadaan IN(), adalah penting untuk memasukkan nilai tersebut dengan betul ke dalam pernyataan. Kod asal cuba menghantar rentetan yang mengandungi nilai, tetapi WordPress mentafsirkannya sebagai rentetan tunggal dengan petikan berganda yang terlepas.

Untuk membetulkannya, gunakan pendekatan berikut:

  1. Buat tatasusunan nilai: Tukar rentetan nilai yang dipisahkan koma kepada tatasusunan individu nilai.
$villes = array("paris", "fes", "rabat");
  1. Jana penyataan SQL: Bina pernyataan SQL dengan bilangan pemegang tempat (%s) yang sesuai untuk keadaan IN().
$sql = "
  SELECT DISTINCT telecopie
  FROM `comptage_fax`
  WHERE `ville` IN(" . implode(', ', array_fill(0, count($villes), '%s')) . ")
";
  1. Gunakan call_user_func_array: Panggil $wpdb->sediakan menggunakan call_user_func_array untuk menghantar nilai tatasusunan sebagai argumen berasingan. Ini memastikan bahawa setiap nilai dirawat secara individu.
$query = call_user_func_array(array($wpdb, 'prepare'), array_merge(array($sql), $villes));

echo $query;

Kod yang diubah suai ini memastikan bahawa pernyataan yang disediakan dibina dengan betul dengan berbilang nilai dalam keadaan IN(). Dengan menggunakan tatasusunan nilai dan call_user_func_array, anda boleh mengelakkan isu petikan berganda yang terlepas dan melaksanakan pernyataan yang disediakan dengan hasil yang diingini.

Atas ialah kandungan terperinci Bagaimana Menggunakan Penyata Disediakan WordPress dengan Berbilang Nilai dalam Keadaan IN()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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