Ekstensi mysqli menampilkan antarmuka ganda. Ini mendukung paradigma pemrograman prosedural dan berorientasi objek
Pengguna yang bermigrasi dari ekstensi mysql lama mungkin lebih suka antarmuka prosedural. Antarmuka prosedural mirip dengan ekstensi mysql lama. Dalam banyak kasus, nama fungsi hanya berbeda dengan awalan. Beberapa fungsi mysqli mengambil pegangan koneksi sebagai argumen pertama mereka, sedangkan fungsi pencocokan di antarmuka mysql lama menganggapnya sebagai argumen terakhir opsional
Contoh #1 Migrasi mudah dari ekstensi mysql lama
$mysqli = mysqli_connect("example.com", "user", "password", "database");
$result = mysqli_query($mysqli, "SELECT 'Please do not use the deprecated mysql extension for new development. ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($result);
echo $row['_msg'];
$mysql = mysql_connect("example.com", "user", "password");
mysql_select_db("test");
$result = mysql_query("SELECT 'Use the mysqli extension instead.' AS _msg FROM DUAL", $mysql);
$row = mysql_fetch_assoc($result);
echo $row['_msg'];
Contoh di atas akan ditampilkan
Please do not use the deprecated mysql extension for new development. Use the mysqli extension instead.
Antarmuka berorientasi objek
Selain antarmuka prosedural klasik, pengguna dapat memilih untuk menggunakan antarmuka berorientasi objek. Dokumentasi diatur menggunakan antarmuka berorientasi objek. Antarmuka berorientasi objek menunjukkan fungsi yang dikelompokkan menurut tujuannya, membuatnya lebih mudah untuk memulai. Bagian referensi memberikan contoh untuk kedua varian sintaks
Tidak ada perbedaan kinerja yang signifikan antara kedua antarmuka. Pengguna dapat mendasarkan pilihan mereka pada preferensi pribadi
Contoh #2 Antarmuka berorientasi objek dan prosedural
$mysqli = mysqli_connect("example.com", "user", "password", "database");_
$result = mysqli_query($mysqli, "SELECT 'A world full of ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($result);
echo $row['_msg'];
$mysqli = new mysqli("example.com", "user", "password", "database");_
$result = $mysqli->query("SELECT 'choices to please everybody.' AS _msg FROM DUAL");
$row = $result->fetch_assoc();
echo $row['_msg'];
Contoh di atas akan ditampilkan
A world full of choices to please everybody. _
Antarmuka berorientasi objek digunakan untuk memulai cepat karena bagian referensi diatur seperti itu
Mencampur gaya
Dimungkinkan untuk beralih antar gaya kapan saja. Mencampur kedua gaya tidak disarankan karena alasan kejelasan kode dan gaya pengkodean
Jadi, jika Anda harus mengalihkan proyek Anda untuk menggunakan database lain, PDO mempermudah prosesnya. Anda hanya perlu mengubah rangkaian koneksi dan beberapa kueri. Dengan MySQLi, Anda perlu menulis ulang seluruh kode - termasuk kueri
Keduanya berorientasi objek, tetapi MySQLi juga menawarkan API prosedural
Keduanya mendukung Pernyataan Disiapkan. Pernyataan Disiapkan melindungi dari injeksi SQL, dan sangat penting untuk keamanan aplikasi web
Contoh MySQL di Sintaks MySQLi dan PDO
Dalam bab ini, dan dalam bab-bab selanjutnya, kami mendemonstrasikan tiga cara bekerja dengan PHP dan MySQL
- MySQLi (berorientasi objek)
- MySQLi (prosedur)
- PDO
Instalasi MySQLi
Untuk Linux dan Windows. Ekstensi MySQLi diinstal secara otomatis dalam banyak kasus, ketika paket mysql php5 diinstal
Untuk detail pemasangan, buka. http. //php. net/manual/en/mysqli. instalasi. php
Instalasi PDO
Untuk detail pemasangan, buka. http. //php. net/manual/en/pdo. instalasi. php
Buka Koneksi ke MySQL
Sebelum kita dapat mengakses data di database MySQL, kita harus dapat terhubung ke server
Contoh (Berorientasi Objek MySQLi)
$namaserver = "localhost";
$namapengguna = "namapengguna";
$sandi = "sandi";
// Buat koneksi
$conn = new mysqli($servername, $username, $password);
// Periksa koneksi
if ($conn->connect_error) {
die("Koneksi gagal. ". $conn->connect_error);
}
gema "Berhasil terhubung";
?>
Perhatikan contoh berorientasi objek di atas
$connect_error rusak hingga PHP 5. 2. 9 dan 5. 3. 0. Jika Anda perlu memastikan kompatibilitas dengan versi PHP sebelum 5. 2. 9 dan 5. 3. 0, gunakan kode berikut sebagai gantinya
// Periksa koneksi
jika (mysqli_connect_error()) {
die("Koneksi database gagal. ". mysqli_connect_error());
}
Contoh (Prosedur MySQLi)
$namaserver = "localhost";
$namapengguna = "namapengguna";
$sandi = "sandi";
// Buat koneksi
$koneksi = mysqli_connect($namaserver, $namapengguna, $sandi);
// Periksa koneksi
jika (. $conn) {
die("Koneksi gagal. ". mysqli_connect_error());
}
gema "Berhasil terhubung";
?>
Contoh (PDO)
$namaserver = "localhost";
$namapengguna = "namapengguna";
$sandi = "sandi";
mencoba {
$conn = new PDO("mysql. host=$servername;dbname=myDB", $username, $password);
// setel mode kesalahan PDO ke pengecualian
$conn->setAttribute(PDO. ATTR_ERRMODE, PDO. ERRMODE_EXCEPTION);
gema "Berhasil terhubung";
} catch(PDOException $e) {
echo "Koneksi gagal. ". $e->getMessage();
}
?>
Catatan. Dalam contoh PDO di atas kami juga telah menentukan database (myDB). PDO memerlukan database yang valid untuk terhubung. Jika tidak ada database yang ditentukan, pengecualian dilemparkan
Tip. Manfaat besar PDO adalah memiliki kelas pengecualian untuk menangani masalah apa pun yang mungkin terjadi dalam kueri basis data kami. Jika pengecualian dilemparkan di dalam blok try{} , skrip berhenti mengeksekusi dan mengalir langsung ke blok catch(){ } pertama
Tutup Koneksi
Sambungan akan ditutup secara otomatis saat skrip berakhir. Untuk menutup koneksi sebelumnya, gunakan yang berikut ini