Saya baru mengenal SQL dan bertanya-tanya apakah saya perlu menggunakan wpdb->prepare
kueri berikut untuk tabel yang saya buat
global $wpdb;
$tablename = $wpdb->prefix . "my_custom_table";
$sql = "SELECT * FROM " . $tablename . " ORDER BY date_created DESC";
$resulst = $wpdb->get_results( $sql , ARRAY_A );
Apakah saya perlu menggunakannya di prepare
sini? Bagaimana saya melakukannya?
Tepuk tangan
sumber
$tablename = $wpdb->prefix . "my_custom_table"; $concert_id = 1; $sql = "SELECT * FROM " . $tablename . " WHERE concert_id = %d LIMIT 1;"; $prep_sql = $wpdb->prepare( $sql, $concert_id ); $get_concerts = $wpdb->get_results( $prep_sql , ARRAY_A );
Dan itu berhasil! Tidak yakin mengapa itu terjadi. Tapi saya mengerti sekarang!SELECT * FROM `wp_my_custom_table`
. Anda dapat mengaktifkan dukungan kutip ganda, tapi kemudian itu akan terlihat seperti ini:SELECT * FROM "wp_my_custom_table"
.Ketika Anda menggunakan prep, itu melindungi kode dari kerentanan injeksi SQL.
Berikut adalah kode yang perlu Anda modifikasi untuk digunakan
prepare()
;sumber
Dalam kasus Anda tidak mungkin serangan injeksi SQL . Kode Anda tidak memerlukan perlindungan tambahan karena tidak menggunakan input pengguna seperti: posting, dapatkan, permintaan, cookie.
Jangan gunakan fungsi yang rumit saat tidak diperlukan untuk menghemat sumber daya server.
sumber