Rumah > pembangunan bahagian belakang > tutorial php > Bolehkah mysql_real_escape_string() Digunakan dengan Selamat dengan Penyata Disediakan Tersuai?

Bolehkah mysql_real_escape_string() Digunakan dengan Selamat dengan Penyata Disediakan Tersuai?

Patricia Arquette
Lepaskan: 2024-11-19 06:04:02
asal
874 orang telah melayarinya

Can mysql_real_escape_string() Be Used Safely with Custom Prepared Statements?

Adakah mysql_real_escape_string() Mempunyai Cacat Tidak Boleh Dibetulkan?

Sesetengah skeptik berpendapat bahawa fungsi mysql_real_escape_string() secara asasnya melindungi SQL dan pertanyaan tidak boleh dipercayai . Mereka menunjukkan artikel lapuk sebagai bukti.

Bolehkah Ia Digunakan untuk Penyata Disediakan Tersuai?

Walaupun terdapat kebimbangan ini, masih mungkin untuk memanfaatkan mysql_real_escape_string() untuk mencipta kenyataan yang disediakan tersuai. Walau bagaimanapun, ia memerlukan perhatian yang teliti terhadap pengendalian charset.

Penyelesaian:

Menurut dokumentasi MySQL C API untuk mysql_real_escape_string(), anda harus menggunakan mysql_set_character_set() untuk menetapkan set watak. Ini memastikan ia turut mempengaruhi set aksara yang digunakan oleh mysql_real_escape_string().

Contoh Kod:

#include <mysql.h>

int main() {
  MYSQL *conn = mysql_init(NULL);
  mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0);

  // Change the encoding using mysql_set_charset()
  mysql_set_charset(conn, "utf8");

  // Create a custom prepared statement using mysql_real_escape_string()
  char query[1024];
  mysql_real_escape_string(conn, query, "SELECT * FROM users WHERE username='test'", sizeof(query));

  // Execute the query
  mysql_query(conn, query);

  mysql_close(conn);
  return 0;
}
Salin selepas log masuk

Dengan mengikuti pendekatan ini dan mengelakkan SET NAMA/SET SET KARAKTER , anda boleh menggunakan mysql_real_escape_string() dengan berkesan untuk melindungi pertanyaan SQL anda daripada suntikan.

Atas ialah kandungan terperinci Bolehkah mysql_real_escape_string() Digunakan dengan Selamat dengan Penyata Disediakan Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan