Basis data ada di mana-mana dan tidak ada aplikasi PHP praktis yang bisa ada tanpa basis data. Sejak awal, PHP menawarkan beberapa cara untuk berinteraksi dengan semua DBMS populer. Misalnya, dua cara populer untuk berinteraksi dengan database berbasis MySQL adalah mysql dan mysqli.
Selama bertahun-tahun, basis data telah berkembang pesat dan sekarang beberapa vendor berbeda menawarkan DBMS populer yang mendukung aplikasi PHP modern. Untuk membakukan dan merampingkan praktik pengembangan, PHP memperkenalkan PHP Data Objects (PDO) di PHP 5.1. Objek ini digunakan untuk menyiapkan koneksi database PDO.
PDO adalah lapisan akses database yang menyediakan antarmuka yang cepat dan konsisten untuk mengakses dan mengelola database dalam aplikasi PHP. Setiap DBMS memiliki driver PDO khusus yang harus diinstal saat Anda menggunakan PDO dalam aplikasi PHP.
Basis Data yang Didukung
Nama driver Database yang Didukung
PDO_CUBRID | Cubrid |
PDO_DBLIB | FreeTDS / Microsoft SQL Server / Sybase |
PDO_FIREBIRD | Firebird |
PDO_IBM | IBM DB2 |
PDO_INFORMIX | Server Dinamis IBM Informix |
PDO_MYSQL | MySQL 3.x/4.x/5.x |
PDO_OCI | Antarmuka Panggilan Oracle |
PDO_ODBC | ODBC v3 (IBM DB2, unixODBC, dan win32 ODBC) |
PDO_PGSQL | PostgreSQL |
PDO_SQLITE | SQLite 3 dan SQLite 2 |
PDO_SQLSRV | Microsoft SQL Server / SQL Azure |
PDO_4D | 4D |
Secara default, PHP telah menginstal driver PDO_SQLite. Namun, jika Anda ingin bekerja dengan database lain, Anda harus menginstal driver yang relevan terlebih dahulu.
untuk memeriksa driver apa yang diinstal pada sistem Anda, buat file PHP baru dan tambahkan cuplikan kode berikut ke dalamnya:
<?php print_r(PDO::getAvailableDrivers()); ?>
Bekerja Dengan PDO
PDO menggantikan semua pendekatan interaksi database sebelumnya. Menggunakan PDO, Anda dapat dengan mudah melakukan CRUD dan operasi DBMS terkait. Akibatnya, PDO bertindak sebagai lapisan yang memisahkan operasi terkait basis data dari kode lainnya.
Anda mungkin juga menyukai: CRUD sederhana di PHP dan MySQL
Konektivitas
Salah satu manfaat paling penting dari PDO adalah konektivitas database yang sederhana dan sangat mudah. Pertimbangkan cuplikan kode berikut yang digunakan untuk menyiapkan koneksi dengan database. Perhatikan bahwa ketika DBMS yang mendasarinya berubah, satu-satunya perubahan yang perlu Anda lakukan adalah tipe database.
<?php Class Connection { private $server = "mysql:host=localhost;dbname=cloudways"; private $user = "root"; private $pass = ""; private $options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,); protected $con; public function openConnection() { try { $this->con = new PDO($this->server, $this->user,$this->pass,$this->options); return $this->con; } catch (PDOException $e) { echo "There is some problem in connection: " . $e->getMessage(); } } public function closeConnection() { $this->con = null; } } ?>
Dalam potongan kode di atas, perhatikan bahwa DBMS adalah MySQL. Namun, jika DBMS berubah menjadi MS SQL Server, satu-satunya perubahan adalah penggantian mysql dengan mssql.
Catatan: PDO dapat menangani pengecualian. Oleh karena itu, selalu bungkus operasinya dalam blok try and catch.
Berhenti Membuang Waktu di Server
Cloudways menangani manajemen server untuk Anda sehingga Anda dapat fokus membuat aplikasi hebat dan membuat klien Anda senang.
Mulai GratisMembuat Tabel Dengan PDO
Untuk membuat tabel, pertama-tama deklarasikan string kueri lalu jalankan dengan exec berfungsi karena tidak ada data yang dikembalikan.
<?php include_once 'connection.php'; try { $database = new Connection(); $db = $database->openConnection(); // sql to create table $sql = "CREATE TABLE `Student` ( `ID` INT NOT NULL AUTO_INCREMENT , `name`VARCHAR(40) NOT NULL , `last_ame` VARCHAR(40) NOT NULL , `email` VARCHAR(40)NOT NULL , PRIMARY KEY (`ID`)) "; // use exec() because no results are returned $db->exec($sql); echo "Table Student created successfully"; $database->closeConnection(); } catch (PDOException $e) { echo "There is some problem in connection: " . $e->getMessage(); } ?>
Memasukkan Data Dengan PDO
Untuk menyisipkan data ke dalam tabel menggunakan PDO, pertama-tama siapkan kueri menggunakan persiapkan penyataan. Selanjutnya, kueri ini dijalankan dengan eksekusi fungsi. Perhatikan bahwa praktik ini mencegah serangan injeksi SQL.
<?php include_once 'connection.php'; try { $database = new Connection(); $db = $database->openConnection(); // inserting data into create table using prepare statement to prevent from sql injections $stm = $db->prepare("INSERT INTO student (ID,name,last_name,email) VALUES ( :id, :name, :lastname, :email)") ; // inserting a record $stm->execute(array(':id' => 0 , ':name' => 'Saquib' , ':lastname' => 'Rizwan' , ':email' => '[email protected]')); echo "New record created successfully"; } catch (PDOException $e) { echo "There is some problem in connection: " . $e->getMessage(); } ?>
Pilih Data Dengan PDO
Untuk memilih data, pertama buat string kueri, lalu jalankan dalam untuk setiap loop untuk mengambil record dari tabel.
<?php include_once 'connection.php'; try { $database = new Connection(); $db = $database->openConnection(); $sql = "SELECT * FROM student " ; foreach ($db->query($sql) as $row) { echo " ID: ".$row['ID'] . "<br>"; echo " Name: ".$row['name'] . "<br>"; echo " Last Name: ".$row['last_name'] . "<br>"; echo " Email: ".$row['email'] . "<br>"; } } catch (PDOException $e) { echo "There is some problem in connection: " . $e->getMessage(); } ?>
Perbarui Data Dengan PDO
Untuk memperbarui catatan dalam tabel, pertama-tama deklarasikan string kueri, lalu jalankan dengan exec fungsi.
<?php include_once 'connection.php'; try { $database = new Connection(); $db = $database->openConnection(); $sql = "UPDATE `student` SET `name`= 'yourname' , `last_name` = 'your lastname' , `email` = 'your email' WHERE `id` = 8" ; $affectedrows = $db->exec($sql); if(isset($affectedrows)) { echo "Record has been successfully updated"; } } catch (PDOException $e) { echo "There is some problem in connection: " . $e->getMessage(); } ?>
Hapus Data Dengan PDO
Untuk menghapus catatan dari tabel, pertama-tama deklarasikan string kueri, lalu jalankan dengan exec fungsi.
<?php include_once 'connection.php'; try { $database = new Connection(); $db = $database->openConnection(); $sql = "DELETE FROM student WHERE `id` = 8" ; $affectedrows = $db->exec($sql); if(isset($affectedrows)) { echo "Record has been successfully deleted"; } } catch (PDOException $e) { echo "There is some problem in connection: " . $e->getMessage(); } ?>
Kesimpulan
PDO adalah lapisan pengakses data yang sangat memudahkan proses menghubungkan dan bekerja dengan database. Mungkin, hal terbaik tentang PDO adalah proses migrasi database yang efisien. Jika Anda ingin mempercepat kueri PDO Anda dengan iterator, lihat artikel ini oleh Michelangelo van Dam.
Pada artikel ini, saya memperkenalkan PDO dan menyoroti bagaimana Anda dapat melakukan tindakan CRUD menggunakan PDO di PHP. Saya juga mendemonstrasikan pengaturan koneksi database PDO. Jika Anda memiliki pertanyaan atau ingin menambahkan diskusi, silakan tinggalkan komentar di bawah.