Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penyelesaian kepada ralat Fatal PHP: Panggilan ke fungsi yang tidak ditentukan mysql_escape_string()

Penyelesaian kepada ralat Fatal PHP: Panggilan ke fungsi yang tidak ditentukan mysql_escape_string()

WBOY
WBOYasal
2023-06-22 18:28:071765semak imbas

Dengan populariti Internet, bahasa PHP telah menjadi bahasa pengaturcaraan yang digunakan secara meluas, dan banyak tapak web serta aplikasi direka dan dibangunkan menggunakannya. Walau bagaimanapun, semasa proses pembangunan PHP, kita sering menghadapi masalah, salah satunya ialah mesej ralat "PHP Fatal error: Call to undefined function mysql_escape_string()" apabila menggunakan mysql_escape_string() function.

Mesej ralat ini bermakna fungsi mysql_escape_string() tidak boleh dikenali atau digunakan dalam versi PHP semasa. Jadi, bagaimana untuk menyelesaikan masalah ini?

  1. Kemas kini versi PHP

Memandangkan fungsi mysql_escape_string() digunakan dalam PHP 5.5 atau lebih awal, ia mungkin tidak berfungsi dalam PHP 5.6 dan ke atas ralat ini berlaku. Oleh itu, mengemas kini versi PHP adalah cara terbaik untuk menyelesaikan masalah. Anda boleh mengemas kini versi PHP anda melalui arahan berikut:

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install php5.6

Selepas menjalankan arahan di atas, anda boleh memasang versi PHP 5.6 dalam sistem semasa anda, dan kemudian gunakan fungsi mysql_escape_string() untuk menyelesaikan masalah ini.

  1. Gunakan fungsi mysqli_escape_string() sebaliknya

Jika anda tidak mahu menaik taraf versi PHP anda, anda boleh menggunakan fungsi mysqli_escape_string() untuk menggantikan mysql_escape_string( ) fungsi. Oleh kerana fungsi fungsi mysqli_escape_string() adalah serupa dengan fungsi mysql_escape_string(), kedua-duanya menghalang serangan suntikan SQL dan lebih selamat. Berikut ialah contoh menggunakan fungsi mysqli_escape_string():

$username = mysqli_real_escape_string($conn, $_POST['username'];
$password = mysqli_real_escape_string($conn, $_POST['password']);
$email = mysqli_real_escape_string($conn, $_POST['email']);

Antaranya, $conn ialah pembolehubah yang menyambung ke pangkalan data dan $_POST ialah parameter jenis tatasusunan yang diluluskan oleh POST. Dengan menulis pernyataan SQL melalui fungsi mysqli_escape_string(), anda boleh menghalang serangan suntikan SQL dengan berkesan dan melepaskan aksara khas dalam pangkalan data.

  1. Gunakan PDO atau rangka kerja ORM lain

Akhir sekali, anda juga boleh menggunakan PDO atau rangka kerja ORM lain (seperti Laravel) untuk menyelesaikan masalah ini. PDO ialah lapisan abstraksi capaian pangkalan data yang disediakan oleh PHP, yang membolehkan kami mengendalikan pangkalan data dengan lebih mudah, sekali gus mengurangkan kemungkinan pembangun melakukan kesilapan. Berikut ialah contoh kod untuk PDO:

$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];

$stmt = $pdo->prepare("INSERT INTO users (username, password, email) VALUES (:username, :password, :email)");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->bindParam(':email', $email);

$stmt->execute();

Dengan menggunakan objek PDO, anda boleh menulis pernyataan SQL dengan selamat untuk mengelakkan ralat ini.

Ringkasnya, tiga kaedah di atas boleh membantu anda menyelesaikan ralat "PHP Fatal: Call to undefined function mysql_escape_string()", dan juga boleh membantu anda meningkatkan keselamatan dan kebolehselenggaraan kod anda. Jika anda menemui mesej ralat ini, sila cuba kaedah di atas untuk menyelesaikan masalah tersebut.

Atas ialah kandungan terperinci Penyelesaian kepada ralat Fatal PHP: Panggilan ke fungsi yang tidak ditentukan mysql_escape_string(). 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