Keusangan dan akhirnya penyingkiran fungsi mysql_ daripada PHP telah menimbulkan persoalan: bolehkah ia digantikan dengan lancar dengan mysqli_? Walaupun mungkin menarik untuk menganggap kesetaraan, jawapannya ialah tidak.
Syukurlah, bagi mereka yang mempunyai kod sedia ada yang meluas menggunakan fungsi mysql_, terdapat penukar alat (https://github.com/philip/MySQLConverterTool) yang boleh mengautomasikan kebanyakan penukaran proses. Ini boleh menyediakan kefungsian segera, membolehkan skrip dilaksanakan seperti yang dijangkakan.
Di luar penyelesaian sementara yang ditawarkan oleh alat penukar, adalah bijak untuk berhijrah ke berorientasikan objek metodologi untuk interaksi pangkalan data. Pendekatan ini menawarkan beberapa kelebihan, termasuk organisasi kod yang dipertingkatkan dan kebolehselenggaraan.
Dalam mysqli_, mewujudkan sambungan melibatkan mencipta objek mysqli baharu dan memberikannya kepada pembolehubah PHP. Contohnya:
$mysqli = new mysqli($host, $username, $password, $database);
Pastikan mendayakan pelaporan ralat untuk mysqli_ sebelum membuka sambungan:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Semua fungsi mysqli_ kini memerlukan sambungan sebagai hujah pertama dalam kod prosedur atau sebagai kaedah objek dalam kod berorientasikan objek. Untuk melaksanakan pertanyaan, kod akan kelihatan seperti ini:
Prosedur:
$result = mysqli_query($mysqli, $sql);
Berorientasikan objek:
$result = $mysqli->query($sql);
Pengambilan hasil sebahagian besarnya kekal tidak berubah dalam mysqli_ daripada mysql_nya rakan sejawat.
Prosedur:
while ($row = mysqli_fetch_assoc($result))
Berorientasikan objek:
while ($row = $result->fetch_assoc())
Menutup sambungan dengan betul adalah penting dan prosesnya kekal konsisten dengan mysql_ dalam mysqli_:
Prosedur:
mysqli_close($mysqli);
Berorientasikan objek:
$mysqli->close();
Penghijrahan dari mysql_ ke mysqli_ melibatkan penukaran semua fungsi berkaitan, termasuk fungsi untuk menutup sambungan, keluaran hasil, pengendalian ralat dan pengiraan baris.
Ingat, walaupun penukaran awal mungkin memerlukan sedikit kerja manual, menerima pendekatan berorientasikan objek boleh menghasilkan faedah jangka panjang untuk pangkalan kod anda. Jadi, walaupun menggantikan fungsi mysql_ secara membabi buta dengan mysqli_ bukanlah penyelesaian yang ideal, ia boleh menjadi batu loncatan ke arah pangkalan kod PHP yang lebih moden dan boleh diselenggara.
Atas ialah kandungan terperinci Bolehkah saya Gantikan `mysql_` dengan `mysqli_` dalam Kod PHP Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!