Berikut ini adalah peringatan untuk kelas wpdb.
https://codex.wordpress.org/Class_Reference/wpdb
Sebuah peringatan
Beberapa fungsi di kelas ini mengambil pernyataan SQL sebagai input. Anda harus SQL melepaskan semua nilai yang tidak tepercaya yang Anda masukkan ke dalam kueri SQL untuk mencegah serangan injeksi SQL. Periksa dokumentasi untuk melihat apakah fungsi yang Anda rencanakan untuk menggunakan escapes SQL untuk Anda atau mengharapkannya lolos.
Jadi saya membaca ini sebagai - kelas wpdb tidak secara otomatis mempersiapkan atau melarikan diri data untuk Anda.
Saya cukup yakin bahwa jika Anda tidak dapat mempercayai 100% sumber data dalam kode Anda, maka saya sarankan menggunakan kelas persiapan (?).
Jangan berpikir bahwa menggunakan kelas persiapan akan memperbaikinya tanpa menggunakan kelas persiapan dengan benar. Saya cukup baru dalam hal ini, jadi silakan kirim koreksi apa pun sebagai balasan jika saya tidak benar.
$ wpdb-> ready ("SELECT * FROM table WHERE ID =% d AND name =% s", $ id, $ name);
Dalam pernyataan di atas, ada 2 atribut tambahan. Satu untuk ID dan satu untuk nama. Sejauh yang saya baca, masing-masing sesuai dengan jumlah item dalam permintaan Anda. Juga% s = string,% d = integer dan% f = float.
Juga, dari bacaan saya, jika Anda tidak memasukkan atribut tambahan, maka mempersiapkan sebenarnya tidak akan melakukan apa-apa. Akan ada peringatan, tetapi jika Anda mematikannya, mungkin Anda tidak akan tahu.
Ini adalah contoh dari referensi kelas itu sendiri di mana mereka menambahkan kelas persiapan ke dalam INSERT di bawah ini.
https://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks
$ wpdb-> query ($ wpdb-> prep ("INSERT KE $ wpdb-> postmeta (post_id, meta_key, meta_value) VALUES (% d,% s,% s)", array (10, $ metakey, $ metavalue) ));
Kekhawatiran saya adalah bahwa jawaban yang dipilih salah tidak sesuai dengan halaman yang sama yang referensi 'tidak ada'. Saya berasumsi bahwa Anda menggunakan prep () tetapi tidak metode php standar lain untuk melarikan diri karena saya mengambil jawaban ini sebagai benar juga ... sampai saya menggali lebih dalam.
Ngomong-ngomong ... mungkin semuanya sudah berubah sejak jawaban aslinya.
insert
&update
tidak membutuhkannya. Tetapi harus digunakan denganquery
.