Apakah saya perlu menggunakan persiapan wpdb sebelum memasukkan wpdb->?
Jika saya memasukkan nilai ke dalam tabel wordpress menggunakan wpdb-> insert, apakah saya perlu "membersihkan" data saya sebelum memasukkannya atau apakah metode ini (wpdb-> insert) melakukannya untuk saya?
insert
&update
tidak membutuhkannya. Tetapi harus digunakan denganquery
.Berikut ini adalah peringatan untuk kelas wpdb.
https://codex.wordpress.org/Class_Reference/wpdb
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
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.
sumber
$wpdb->insert()
, $ wpdb-> update () `atau$wpdb->delete()
data harus RAW. Dalam situasi di mana Anda menggunakan misalnya$wpdb->query()
dan meneruskan pernyataan SQL sebagai input, Anda harus menghindari data yang tidak dipercaya.Tidak, Anda tidak perlu mencegah injeksi SQL saat Anda menggunakan - wpdb insert atau wpdb delete.
Lihat tautan berikut:
https://codex.wordpress.org/Data_Validation#Database
https://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks
sumber