Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Ralat 'Fungsi mysql_* yang ditamatkan' Selepas Menaik taraf PHP?
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!