Saya ingin menggunakan pernyataan LIKE% teks% sambil tetap menggunakan kelas WordPress $ wpdb untuk membersihkan dan menyiapkan input.
SELECT column_1 from `prefix_my_table` WHERE column_2 LIKE '%something%';
Saya sudah mencoba sesuatu seperti ini tetapi tidak berhasil:
$wpdb->prepare( "SELECT column_1 from `{$wpdb->base_prefix}my_table` WHERE column_2 LIKE %s;", like_escape($number_to_put_in_like));
Bagaimana Anda menyiapkan pernyataan% LIKE% SQL dengan benar menggunakan kelas basis data WordPress?
{}
?$wpdb
, dan mengabaikan yang->prefix
sesudahnya.$wpdb->base_prefixmy_table
dan mencoba untuk mencaribase_prefixmy_table
properti bukan hanyabase_prefix
.Anda perlu menggandakan persen agar mereka tidak diperlakukan seperti spidol dengan
wpdb->prepare()
:PS tidak yakin ini cara terbaik / satu-satunya untuk melakukannya.
sumber
wpdb::prepare
hanya akan menambahkannya untuk tanda%s
yang tidak diawali dengan tanda%
. Bagian akhir dari kueri Anda seharusnyaWHERE column_2 LIKE '%%%s%%'
.Ini adalah salah satu cara untuk melakukannya yang telah saya periksa dan berfungsi:
Ganti variabel sesuai dengan kebutuhan Anda.
sumber
%
karakter (dengan menggunakanlike_escape()
. Lihat: codex.wordpress.org/Class_Reference/…