PHP 5 dan kemudian dapat bekerja dengan database MySQL menggunakan:
- Ekstensi MySQLi (the "i" stands for improved)
- PDO (PHP Data Objects)
Versi sebelumnya dari PHP menggunakan ekstensi MySQL. Namun, ekstensi ini ditinggalkan pada tahun 2012.
Aku harus Gunakan MySQLi atau PDO?
Jika Anda membutuhkan jawaban singkat, itu akan menjadi "Whatever you like" .
Kedua MySQLi dan PDO memiliki keuntungan mereka:
PDO akan bekerja pada 12 sistem database yang berbeda, dimana MySQLi hanya akan bekerja dengan database MySQL.
Jadi, jika Anda harus beralih proyek Anda untuk menggunakan database lain, PDO membuat proses mudah. Anda hanya harus mengubah string koneksi dan beberapa pertanyaan. Dengan MySQLi, Anda akan perlu untuk menulis ulang seluruh kode - query disertakan.
Keduanya object-oriented, tapi MySQLi juga menawarkan API prosedural.
Kedua mendukung Laporan Disiapkan. Laporan Disiapkan melindungi dari SQL injection, dan sangat penting untuk keamanan aplikasi web.
MySQL Contoh di Kedua MySQLi dan PDO Syntax
Dalam hal ini, dan dalam bab-bab berikut kita menunjukkan tiga cara bekerja dengan PHP dan MySQL:
- MySQLi (object-oriented)
- MySQLi (procedural)
- PDO
Instalasi MySQLi
Untuk Linux dan Windows: Perpanjangan MySQLi terinstal secara otomatis dalam kebanyakan kasus, ketika paket php5 mysql diinstal.
Untuk rincian instalasi, pergi ke: http://php.net/manual/en/mysqli.installation.php
Instalasi PDO
Untuk rincian instalasi, pergi ke: http://php.net/manual/en/pdo.installation.php
Buka Koneksi ke MySQL
Sebelum kita dapat mengakses data dalam database MySQL, kita harus dapat terhubung ke server:
Contoh (MySQLi Object-Oriented)
<?php
$servername = "localhost";
$username = "username";
$password =
"password";
// Create connection
$conn =
new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
Catatan pada contoh berorientasi objek di atas: $ connect_error rusak sampai 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 ini sebagai gantinya:
// Periksa koneksi
jika ( mysqli_connect_error() ) {
die("Database connection failed: " . mysqli_connect_error() );
}
Contoh (MySQLi Procedural)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = mysqli_connect($servername,
$username, $password);
// Check connection
if (!$conn) {
die("Connection
failed: " . mysqli_connect_error());
}
echo "Connected
successfully";
?>
Contoh (PDO)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB",
$username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
echo "Connected
successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>
Perhatikan bahwa dalam contoh PDO atas kami juga telah ditentukan database (myDB) . PDO membutuhkan database yang valid untuk terhubung ke. Jika ada database yang ditentukan, eksepsi dilemparkan.
Tip: Satu manfaat besar dari PDO adalah bahwa ia memiliki kelas pengecualian untuk menangani masalah yang mungkin terjadi dalam query database kami. Jika eksepsi dilemparkan dalam try {} blok, script berhenti mengeksekusi dan mengalir langsung ke pertama catch() {} blok.
Tutup Connection
koneksi akan ditutup secara otomatis ketika script berakhir. Untuk menutup sambungan sebelumnya, gunakan berikut:
Contoh (MySQLi Object-Oriented)
$conn->close();
Contoh (MySQLi Procedural)
mysqli_close($conn);
Contoh (PDO)
$conn = null;