Rumah > Artikel > pangkalan data > Bagaimanakah Saya Boleh Berhijrah dengan Selamat daripada Fungsi `mysql_` ke `mysqli_` dalam PHP?
Walaupun fungsi mysql_ dalam PHP 5.5 telah dihentikan dan penyingkiran seterusnya dalam PHP 7, pembangun mungkin adalah PHP 7. tergoda untuk menggantikannya dengan rakan sejawat mysqli_ mereka. Walau bagaimanapun, pendekatan ini boleh menyebabkan akibat yang tidak diingini.
Walaupun fungsi berkongsi nama dan kefungsian umum yang serupa, terdapat perbezaan yang ketara di antara mereka. Sebagai contoh, fungsi mysql_query() mengembalikan pemegang sumber, manakala mysqli_query() mengembalikan objek mysqli_result. Ini mungkin kelihatan tidak penting, tetapi ia boleh menyebabkan ralat jika kod tidak dilaraskan dengan betul untuk mengendalikan perubahan dalam jenis pulangan.
Menyedari masalah ini, alat penukaran telah dibangunkan untuk membantu pembangun dalam mengalihkan kod mereka daripada mysql_ kepada mysqli_. Alat ini, tersedia di https://github.com/philip/MySQLConverterTool, boleh mengautomasikan proses penukaran, membolehkan skrip berfungsi dengan betul serta-merta.
Walaupun menggunakan alat penukaran adalah penyelesaian yang mudah, ia juga boleh menjadi peluang untuk menaik taraf kepada metodologi berorientasikan objek. Pendekatan ini bukan sahaja menghapuskan keperluan untuk awalan mysqli_ pada fungsi, tetapi juga memudahkan organisasi kod dan meningkatkan kebolehbacaan.
Untuk menggambarkan perbezaan utama, pertimbangkan perkara berikut contoh:
Sambungan:
mysql_connect($host, $username, $kata laluan);
vs.
$mysqli = mysqli baharu($host, $nama pengguna, $kata laluan, $database);
Pertanyaan:
$result = mysql_query($sql);
vs.
$result = mysqli_query($mysqli, $sql);
pra>
Ambil Keputusan:
sementara ($row = mysql_fetch_assoc($result))
lwn.
sementara ($baris = $result->fetch_assoc())
Tutup Sambungan:
mysql_close();
vs.
&l t;pra>
$mysqli->close();
Sementara penggantian buta fungsi mysql_ dengan mysqli_ mungkin kelihatan seperti pembetulan cepat, ia boleh membawa kepada ralat dan kerumitan yang tidak perlu. Sebaliknya, pertimbangkan untuk menggunakan alat penukaran atau menggunakan pendekatan berorientasikan objek untuk pangkalan kod yang lebih cekap dan boleh diselenggara.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Berhijrah dengan Selamat daripada Fungsi `mysql_` ke `mysqli_` dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!