PHP Terhubung ke MySQL
PHP 5 dan yang lebih baru dapat bekerja dengan database MySQL menggunakan:
- Ekstensi MySQLi ("i" berarti ditingkatkan)
- PDO (Objek Data PHP)
Versi PHP sebelumnya menggunakan ekstensi MySQL. Namun, ekstensi ini tidak digunakan lagi pada tahun 2012.
Haruskah Saya Menggunakan MySQLi atau PDO?
Jika Anda membutuhkan jawaban singkat, itu akan menjadi "Terserah Anda".
Baik MySQLi dan PDO memiliki kelebihan:
PDO akan bekerja pada 12 sistem database yang berbeda, sedangkan MySQLi hanya akan bekerja dengan database MySQL.
Jadi, jika Anda harus mengganti proyek Anda untuk menggunakan database lain, PDO mempermudah prosesnya. Anda hanya perlu mengubah string 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 yang Disiapkan. Pernyataan yang Disiapkan melindungi dari injeksi SQL, dan sangat penting untuk keamanan aplikasi web.
Contoh MySQL di Sintaks MySQLi dan PDO
Dalam hal ini, dan dalam bab-bab berikutnya kami mendemonstrasikan tiga cara bekerja dengan PHP dan MySQL:
- MySQLi (berorientasi objek)
- MySQLi (prosedural)
- PDO
Instalasi MySQLi
Untuk Linux dan Windows: Ekstensi MySQLi diinstal secara otomatis dalam banyak kasus, ketika paket php5 mysql diinstal.
Untuk detail instalasi, kunjungi: http://php.net/manual/en/mysqli.installation.php
Instalasi PDO
Untuk detail instalasi, kunjungi: http://php.net/manual/en/pdo.installation.php
Buka Koneksi ke MySQL
Sebelum kita dapat mengakses data di 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";
?>
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
if (mysqli_connect_error()) {
die("Database connection failed: " . mysqli_connect_error());
}
Contoh (Prosedural MySQLi)
<?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();
}
?>
Catatan: Dalam contoh PDO di atas kami juga telah menetapkan database (myDB) . PDO memerlukan database yang valid untuk terhubung. Jika tidak ada database yang ditentukan, pengecualian dilemparkan.
Tip: Manfaat besar dari PDO adalah memiliki kelas pengecualian untuk menangani masalah apa pun yang mungkin terjadi dalam kueri database kami. Jika pengecualian dilemparkan dalam blok try{}, skrip berhenti mengeksekusi dan mengalir langsung ke blok catch(){ } pertama.
Tutup Koneksi
Koneksi akan ditutup secara otomatis ketika skrip berakhir. Untuk menutup koneksi sebelumnya, gunakan yang berikut ini:
Berorientasi Objek MySQLi:
$conn->close();
Prosedur MySQLi:
mysqli_close($conn);
PDO:
$conn = null;