Rumah >pembangunan bahagian belakang >tutorial php >Mengapa `mysqli_real_escape_string()` Throw 'menjangkakan tepat 2 parameter, 1 diberikan'?

Mengapa `mysqli_real_escape_string()` Throw 'menjangkakan tepat 2 parameter, 1 diberikan'?

Susan Sarandon
Susan Sarandonasal
2024-12-04 14:50:10381semak imbas

Why Does `mysqli_real_escape_string()` Throw

Menyelesaikan "mysqli_real_escape_string() menjangkakan tepat 2 parameter, 1 diberi" Ralat

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:

  1. mysqli $link: Rujukan kepada sambungan MySQLi yang telah ditetapkan.
  2. rentetan $escapestr: Rentetan yang akan melarikan diri.

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!

Kenyataan:
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