Halo, Pada seri tutorial PHP kali ini kita akan mempelajari cara mengaktifkan ekstensi PDO untuk beberapa driver database Show Pengertian PDOPDO adalah singkatan dari PHP Data Object dan merupakan ekstensi PHP yang dapat digunakan sebagai level abstraksi untuk koneksi antara program PHP dan berbagai database. PHP Data Objects (PDO) adalah ekstensi PHP yang mendefinisikan antarmuka yang ringan dan konsisten untuk mengakses database PHPSetiap driver database, yang mengimplementasikan antarmuka PDO, dapat menampilkan fitur khusus database melalui fungsi ekspansi umum. Perhatikan bahwa kami tidak dapat melakukan operasi basis data hanya dengan menggunakan ekstensi PDO. Untuk itu, kita perlu menggunakan driver PDO khusus untuk mengakses server database PDO menyediakan tingkat abstraksi untuk mengakses data, yang berarti bahwa basis data apa pun yang Anda gunakan, Anda akan menggunakan fitur yang sama untuk mengirim kueri dan menerima data. PDO tidak menyediakan abstraksi dari database Salah satu keuntungan PDO adalah tidak menulis ulang SQL, atau menyalin fitur yang hilang di beberapa database. Untuk itu, Anda harus menggunakan lapisan abstraksi yang dikembangkan sepenuhnya untuk mendapatkan fitur ini. Dari PHP versi 5. 1 PDO terintegrasi dengan PHP dan tersedia sebagai ekstensi PECL untuk PHP 5. 0 Keuntungan Menggunakan PDO
Jenis DBMS yang mendukung PDOHingga saat ini PDO mendukung setidaknya 12 jenis DBMS (Database Management Server)
Cara Mengaktifkan Ekstensi PDO di PHPSecara default Ekstensi PDO aktif di PHP versi 5. 6 ke atas, tetapi tidak semua driver database dapat digunakan. Dengan kata lain, untuk alasan performa, PHP menonaktifkan beberapa driver database seperti Oracle atau PostgreSQL di PDO Cara mengaktifkan PDO untuk driver database lainnya cukup sederhana, kita hanya perlu mengubah file php. ini . file php. Ini adalah file konfigurasi yang digunakan PHP. Karena saya menggunakan PHP yang diinstal dari XAMPP di drive C, lokasinya adalah. C. \xampp\php\php. ini. untuk mengaktifkan ekstensi PDO pada file php. ini, silahkan cari dengan menggunakan CTRL + F kata "pdo". Nanti akan ada extension PDO dari beberapa database driver. Untuk mengaktifkannya, harap hilangkan titik koma (;) di depan teks ekstensi . Tidak perlu mengaktifkan semua driver database kami. Apa yang ingin kita gunakan untuk koneksi database. Selanjutnya, simpan file php. ini, kemudian restart web server Apache (matikan dan hidupkan lagi melalui XAMPP Control Panel) Untuk mengetahui apakah ekstensi PDO sudah aktif, buat file PHP dengan nama terserah sobat. Kemudian masukkan kode berikut Berbeda dengan fungsi mysql_ dan mysqli_, PDO tidak perlu memanggil fungsi _______0_______0. Cukup buat objek PDO, maka objek siap digunakan, tidak perlu melakukan PDO::ERRMODE_EXCEPTION]; $dsn = "mysql:host=$host;charset=utf8;dbname=$dbname;"; $db = new PDO($dsn, $dbuser, $dbpass, $opts); ?>0 dan PDO::ERRMODE_EXCEPTION]; $dsn = "mysql:host=$host;charset=utf8;dbname=$dbname;"; $db = new PDO($dsn, $dbuser, $dbpass, $opts); ?>2 database. Sintaks untuk membuat objek PDO adalah sebagai berikut $db = new PDO($dsn, $user, $pass, $opts); Oleh
Dalam konstruktor PDO di atas, semua parameter selain _______0_______3 adalah opsional. Namun, untuk koneksi ke MySQL, _______0________4 dan _______0_______5 juga diperlukan. Silakan coba buat file CREATE DATABASE IF NOT EXISTS toko; CREATE TABLE IF NOT EXISTS toko.barang ( id INT PRIMARY KEY AUTO_INCREMENT, tipe VARCHAR(50), kategori VARCHAR(50), harga INT ) engine=innodb;0 yang berisi isinya PDO::ERRMODE_EXCEPTION]; $dsn = "mysql:host=$host;charset=utf8;dbname=$dbname;"; $db = new PDO($dsn, $dbuser, $dbpass, $opts); ?> $hostPada contoh di atas, _______11________1 diisi dengan _______11_______2, bisa juga diisi dengan _______11_______3. Berdasarkan hasil pengujian penulis, pada sistem operasi Windows koneksi ke CREATE DATABASE IF NOT EXISTS toko; CREATE TABLE IF NOT EXISTS toko.barang ( id INT PRIMARY KEY AUTO_INCREMENT, tipe VARCHAR(50), kategori VARCHAR(50), harga INT ) engine=innodb;4 lebih cepat dibandingkan ke CREATE DATABASE IF NOT EXISTS toko; CREATE TABLE IF NOT EXISTS toko.barang ( id INT PRIMARY KEY AUTO_INCREMENT, tipe VARCHAR(50), kategori VARCHAR(50), harga INT ) engine=innodb;5. Dan di sisi lain di Linux, koneksi ke CREATE DATABASE IF NOT EXISTS toko; CREATE TABLE IF NOT EXISTS toko.barang ( id INT PRIMARY KEY AUTO_INCREMENT, tipe VARCHAR(50), kategori VARCHAR(50), harga INT ) engine=innodb;5 lebih cepat daripada ke _______11_______4. Jadi silakan pilih sesuai dengan sistem operasi Anda $namadb$dbname adalah nama database target awal. Agar kode program di atas berjalan lancar maka database toko harus sudah ada. Untuk pengujian, melalui phpMyAdmin atau command prompt, buat database dan tabel di MySQL dengan perintah CREATE DATABASE IF NOT EXISTS toko; CREATE TABLE IF NOT EXISTS toko.barang ( id INT PRIMARY KEY AUTO_INCREMENT, tipe VARCHAR(50), kategori VARCHAR(50), harga INT ) engine=innodb; Atau saat menggunakan PostgreSQL CREATE DATABASE IF NOT EXISTS toko; CREATE TABLE IF NOT EXISTS toko.barang ( id SERIAL PRIMARY KEY, tipe VARCHAR(50), kategori VARCHAR(50), harga INT ) engine=innodb; $ dllVariabel ini dapat mengatur berbagai hal, seperti jenis server database, alamat server tujuan, database awal yang digunakan, dan parameter lainnya. Variabel $host dan $dbname di atas sebenarnya hanya bagian dari $dsn ini. Dibuatkan variabel-variabel tersendiri agar kode program ini mudah dibaca dan dijelaskan. Pada contoh di atas, kita juga menentukan parameter charset, yang merupakan pengkodean karakter di server database. Kami menggunakan charset utf8 yang dapat menampung semua jenis karakter, termasuk bahasa Arab, Jepang, Mandarin, Korea, dan sebagainya $memilihVariabel _______0________6 adalah opsional. Melalui variabel ini, kita dapat mengatur beberapa perilaku PDO. Pada contoh di atas, _______11________9 diberi nilai _______21_______0, sehingga ketika terjadi kesalahan, PDO akan mengeluarkan Exception yang dapat kita tangkap dengan struktur try-catch. Jika Anda tidak menggunakan $opts pada konstruktor PDO, opsi ini juga dapat diatur melalui metode CREATE DATABASE IF NOT EXISTS toko; CREATE TABLE IF NOT EXISTS toko.barang ( id SERIAL PRIMARY KEY, tipe VARCHAR(50), kategori VARCHAR(50), harga INT ) engine=innodb;1 Jika Anda hanya menggunakan MySQL, silakan lanjutkan ke tutorial berikutnya. Di bawah ini adalah hal-hal yang tidak terlalu penting untuk diketahui Opsi pada perintah koneksi PDO di atas CREATE DATABASE IF NOT EXISTS toko; CREATE TABLE IF NOT EXISTS toko.barang ( id SERIAL PRIMARY KEY, tipe VARCHAR(50), kategori VARCHAR(50), harga INT ) engine=innodb;2, dapat dihilangkan hingga menjadi CREATE DATABASE IF NOT EXISTS toko; CREATE TABLE IF NOT EXISTS toko.barang ( id SERIAL PRIMARY KEY, tipe VARCHAR(50), kategori VARCHAR(50), harga INT ) engine=innodb;3. Dan opsi PDO dapat diatur setelah koneksi dengan menggunakan metode setAttribute(). Ada banyak atribut yang bisa diatur, bisa dilihat di manual PHP. Beberapa dari mereka
Contoh penggunaan perintah setAttribute() $db = new PDO($dsn, $dbuser, $dbpass); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); Jika tidak diatur, CREATE DATABASE IF NOT EXISTS toko; CREATE TABLE IF NOT EXISTS toko.barang ( id INT PRIMARY KEY AUTO_INCREMENT, tipe VARCHAR(50), kategori VARCHAR(50), harga INT ) engine=innodb;_9 akan menjadi CREATE DATABASE IF NOT EXISTS toko; CREATE TABLE IF NOT EXISTS toko.barang ( id SERIAL PRIMARY KEY, tipe VARCHAR(50), kategori VARCHAR(50), harga INT ) engine=innodb;5, dimana ketika terjadi error, PDO tidak melakukan apapun kecuali mengisi variabel CREATE DATABASE IF NOT EXISTS toko; CREATE TABLE IF NOT EXISTS toko.barang ( id SERIAL PRIMARY KEY, tipe VARCHAR(50), kategori VARCHAR(50), harga INT ) engine=innodb;6 dan CREATE DATABASE IF NOT EXISTS toko; CREATE TABLE IF NOT EXISTS toko.barang ( id SERIAL PRIMARY KEY, tipe VARCHAR(50), kategori VARCHAR(50), harga INT ) engine=innodb;7, pada mode ini penanganan error dapat dilakukan dengan $perintah = $db->query($sql) or die("ERROR: ".implode(":",$db->errorInfo())); Sedangkan saat menggunakan PDO. ERRMODE_EXCEPTION, kemudian penanganan error dilakukan dengan try-catch. Mode ini adalah mode yang direkomendasikan. Sebagai contoh query($sql); } catch (Exception $ex) { die("ERROR: ".implode(":",$db->errorInfo())); } ?> Selain MySQL, PDO dapat digunakan untuk terhubung ke database lain seperti MSSQL dan Postgresql. Untuk mengetahui driver PDO mana yang diinstal pada PHP Anda, Anda dapat menggunakan perintah PDO. getAvailableDrivers() echo "".print_r(PDO::getAvailableDrivers(), true).""; |