Rumah >pembangunan bahagian belakang >tutorial php >Mengapa `mysqli_real_escape_string()` Throw 'menjangkakan tepat 2 parameter, 1 diberikan'?
Fungsi "mysqli_real_escape_string()" direka untuk melepaskan aksara khas dalam rentetan untuk menghalang Serangan suntikan SQL. Walau bagaimanapun, ia mempunyai keperluan parameter tertentu yang mungkin menyebabkan ralat "mysqli_real_escape_string() menjangkakan tepat 2 parameter, 1 diberikan."
Analisis Masalah:
Kod yang disediakan menyemak versi PHP dan cuba menggunakan "mysqli_real_escape_string()" dengan sewajarnya. Walau bagaimanapun, panggilan fungsi hanya termasuk rentetan yang akan dilepaskan, kehilangan parameter pertama yang diperlukan: pautan mysqli.
Penjelasan Dokumentasi:
Menurut dokumentasi rasmi, "mysqli_real_escape_string()" memerlukan dua parameter:
Penyelesaian:
Untuk menyelesaikan ralat, kod harus memasukkan kedua-dua parameter apabila memanggil fungsi "mysqli_real_escape_string()". Berikut ialah versi yang dikemas kini:
if (phpversion() >= '4.3.0') { $string = mysqli_real_escape_string($link, $string); } else { $string = mysqli_escape_string($link, $string); }
Dengan memastikan pautan mysqli disediakan sebagai parameter pertama, fungsi "mysqli_real_escape_string()" akan melepaskan rentetan input dengan betul dan menghalang kelemahan suntikan SQL.
Atas ialah kandungan terperinci Mengapa `mysqli_real_escape_string()` Throw 'menjangkakan tepat 2 parameter, 1 diberikan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!