PHP 5 dan kemudian dapat bekerja dengan database MySQL menggunakan:
- Ekstensi MySQLi ( "i" singkatan ditingkatkan)
- PDO (PHP Data Objects)
Versi sebelumnya dari PHP menggunakan ekstensi MySQL. Namun, ekstensi ini ditinggalkan pada tahun 2012.
Saya harus Gunakan MySQLi atau PDO?
Jika Anda membutuhkan jawaban singkat, itu akan menjadi "Apa pun yang Anda suka".Kedua MySQLi dan PDO memiliki keunggulan:
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 siap 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 (prosedural)
- 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.phpBuka 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";
?>
PHP adalah bahasa yang menakjubkan dan populer!
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 sambungan
jika (mysqli_connect_error ()) {
die ( "Koneksi database gagal:". Mysqli_connect_error ());
}
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 sambungan
jika (mysqli_connect_error ()) {
die ( "Koneksi database gagal:". Mysqli_connect_error ());
}
Contoh (MySQLi Prosedural)
<?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 menyambung 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 tangkapan pertama () {} 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 Prosedural)
mysqli_close($conn);
Contoh (PDO)
$conn = null;
Berikan Komentar
<i>KODE</i>
<em>KODE YANG LEBIH PANJANG</em>
Notify me
untuk mendapatkan notifikasi balasan komentar melalui Email.