Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Ralat 'Fungsi mysql_* yang ditamatkan' Selepas Menaik taraf PHP?

Bagaimana untuk Membetulkan Ralat 'Fungsi mysql_* yang ditamatkan' Selepas Menaik taraf PHP?

Barbara Streisand
Barbara Streisandasal
2024-11-09 10:25:02926semak imbas

How to Fix

Pengendalian Ralat Selepas Peningkatan PHP: Fungsi mysql_* yang lapuk

Seperti yang anda temui semasa menaik taraf daripada PHP 5.2 kepada 5.5, beberapa daripada anda Coretan kod PHP menghadapi ralat yang berkaitan dengan mysql_* yang usang atau lapuk fungsi. Mari kita terokai isu ini dan sediakan penyelesaian.

Fungsi mysql_real_escape_string() yang ditamatkan

Fungsi mysql_real_escape_string() digunakan untuk melindungi daripada serangan suntikan SQL. Walau bagaimanapun, ia telah ditamatkan dalam versi PHP yang lebih baharu dan memihak kepada alternatif yang lebih selamat.

Penyelesaian: Gantikan mysql_real_escape_string() dengan mysqli_real_escape_string() untuk memastikan kebolehpercayaan berterusan.

Bilangan Hujah yang Salah untuk mysqli_real_escape_string()

Fungsi mysqli_real_escape_string() memerlukan dua argumen: sumber sambungan dan rentetan untuk dilepaskan. Dalam contoh anda, anda hanya menyediakan satu hujah.

Penyelesaian: Wujudkan sambungan ke pangkalan data dan hantar sumber sambungan ke mysqli_real_escape_string() sebagai argumen pertama. Sintaks untuk mewujudkan sambungan kelihatan seperti ini:

<code class="php">$connection = mysqli_connect("host", "my_user", "my_password", "my_db");</code>

Pilihan Alternatif: Objek Pangkalan Data

Daripada menghantar secara manual sumber sambungan setiap kali, anda boleh menggunakan objek pangkalan data untuk memudahkan proses. Pendekatan ini melibatkan penyediaan objek pangkalan data seperti berikut:

<code class="php">$mysqli = new mysqli("host", "my_user", "my_password", "my_db");</code>

Setelah anda mencipta objek pangkalan data, anda boleh menggunakan fungsi terbina dalamnya untuk melaksanakan operasi pangkalan data tanpa menghantar sumber sambungan secara eksplisit. Contohnya:

<code class="php">$result = $mysqli->query("SELECT * FROM login WHERE username = '{$username}' AND password = '{$password}' AND status=1");</code>

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Fungsi mysql_* yang ditamatkan' Selepas Menaik taraf PHP?. 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