Jawaban singkatnya adalah tidak , fungsinya tidak setara.
Kabar baiknya adalah ada alat konverter yang akan membantu Anda jika Anda memiliki banyak panggilan/proyek untuk diubah. Ini akan memungkinkan skrip Anda langsung bekerja.
https://github.com/philip/MySQLConverterTool
Ini adalah versi bercabang dari versi asli Oracle, dan halal.
Karena itu, tidak terlalu sulit untuk memperbarui kode Anda, dan Anda mungkin tetap ingin bermigrasi ke metodologi berorientasi objek ...
1) Sambungan
Untuk semua maksud dan tujuan, Anda memerlukan fungsi koneksi baru yang menyimpan koneksi sebagai variabel PHP, misalnya;
$mysqli = new mysqli($host, $username, $password, $database);
Perhatikan saya telah menyimpan koneksi ke $mysqli
. Anda dapat menyimpan ke $db
atau apa pun yang Anda suka, tetapi Anda harus menggunakan ini di seluruh kode Anda untuk merujuk koneksi.
Ingatlah untuk mengaktifkan pelaporan kesalahan untuk mysqli sebelum membuka koneksi;
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
2) Kueri
Catatan:Anda harus melindungi dari injeksi SQL dengan pernyataan yang telah disiapkan, yang tersedia di MySQLi. Lihat Bagaimana cara mencegah injeksi SQL di PHP? , tapi saya hanya akan membahas dasar-dasarnya di sini.
Anda sekarang harus menyertakan koneksi sebagai argumen dalam kueri Anda, dan mysqli_
. lainnya fungsi. Dalam kode prosedural itu argumen pertama, di OO Anda menulisnya seperti metode kelas.
Prosedural:
$result = mysqli_query($mysqli, $sql);
OO:
$result = $mysqli->query($sql);
3) Ambil Hasil
Pengambilan hasilnya mirip dengan mysql_
yang lama fungsi dalam prosedural;
while ($row = mysqli_fetch_assoc($result))
tetapi sebagai $result
sekarang menjadi objek di mysqli, Anda dapat menggunakan panggilan fungsi objek;
while ($row = $result->fetch_assoc())
4) Tutup Sambungan
Jadi seperti sebelumnya, Anda perlu menyertakan koneksi dalam fungsi tutup; sebagai argumen dalam prosedural;
mysqli_close($mysqli);
dan sebagai objek tempat Anda menjalankan fungsi di OO;
$mysqli->close();
Saya akan berada di sini selamanya jika saya melewati semuanya, tetapi Anda mendapatkan idenya. Lihat dokumentasi untuk informasi lebih lanjut. Jangan lupa untuk mengonversi fungsi penutupan koneksi, rilis hasil, atau kesalahan dan penghitungan baris yang Anda miliki.
Aturan dasarnya adalah untuk fungsi yang menggunakan koneksi database, Anda harus memasukkannya ke dalam fungsi sekarang (baik sebagai argumen pertama dalam prosedural, atau objek yang Anda gunakan untuk memanggil fungsi di OO), atau untuk kumpulan hasil Anda bisa mengubah fungsinya menjadi mysqli_
atau gunakan hasil yang ditetapkan sebagai objek.