Koneksi Database PDO PHP
Kebanyakan dari kita penggunaan database MySQL pada PHP kita lakukan dengan cara menggunakan mysql extension. Extension inilah yang memberikan kita fasilitas pengaksesan / penganganan database. Pengaksesan database dengan menggunakan MySQL pada PHP dapat dilakukan dengan tiga cara :
MySQL extension yang biasa kita gunakan seperti : mysql_connect(), mysql_query(), mysql_num_rows() dsb.Berikut ini adalah contoh mysql_extension
- MySQL extension
- MySQLi
- PDO MySQL
MySQL extension yang biasa kita gunakan seperti : mysql_connect(), mysql_query(), mysql_num_rows() dsb.Berikut ini adalah contoh mysql_extension
Contoh 1:
Teknik penggunaan mysql_extension pada pemrograman PHP mulai ditinggalkan, sebagai generasi penerusnya telah mulai diperkenalkan MySQLi dan PDO pada PHP ver.5.0. Pada topik ini kita tidak membahas MySQLi. Berikut ini contoh penggunaan PDO seperti yang ditunjukkan oleh contoh 2:
Contoh 2:
Apa itu PDO ?
PDO merupakan singkatan dari PHP Data Objects yang bertujuan memberikan metode seragam dalam penanganan ke beberapa database yang didukung oleh Driver PDO seperti : MySQL, PostgreSQL, Informix, MSSQL, Oracle, SQLite, Firebird/Interbase dsb. Maksud dari kata seragam mengacu kepada pembuatan script PDO yang sama untuk segala jenis database yang disupport, hanya skrip koneksi stringnya saja yang berbeda.
Berikut ini contoh yang mengatakan bahwa PDO itu seragam. Database yang kita gunakan adalah PostgreSQL dan MySQL :
Contoh koneksi database PostgreSQL:
Contoh koneksi database MySQL:
Dari contoh koneksi database Postgresql dan MySQL, tidak ada perbedaan kentara dalam penggunaan PDO. Untuk lebih memperjelas keseragaman PDO, kita akan mencoba membandingkan pengaksesan database mahasiswa untuk menampilkan nim, nama dan alamat yang akan kita implementasikan pada : MySQL dan Postgresql.
Tahap Pertama, kita akan gunakan cara biasa, yaitu MySQL extension dan PostgreSQL extension. Untuk database Postgresql, silahkan anda install terlebih dahulu databasenya, kemudian buka php.ini, hilangkan tanda ";" untuk extension=php_pgsql.dll untuk mengaktifkan penggunaan sintax database posgresql. Database yang kita gunakan adalah mahasiswa yang terdiri dari 3 field, yaitu : nim, nama dan alamat seperti yang ditunjukkan oleh tabel berikut:
Berikut ini contoh pengaksesan dengan model mysql exntension yang ditunjukkan Contoh 1 dan PosgreSQL extension yang ditunjukkan Contoh 2
Contoh 1 :
Tahap Pertama, kita akan gunakan cara biasa, yaitu MySQL extension dan PostgreSQL extension. Untuk database Postgresql, silahkan anda install terlebih dahulu databasenya, kemudian buka php.ini, hilangkan tanda ";" untuk extension=php_pgsql.dll untuk mengaktifkan penggunaan sintax database posgresql. Database yang kita gunakan adalah mahasiswa yang terdiri dari 3 field, yaitu : nim, nama dan alamat seperti yang ditunjukkan oleh tabel berikut:
nim
|
nama
|
alamat
|
MH101
|
Andi Fabrioga
|
Kudus
|
MH102
|
Dadang Subagia
|
Solo
|
Berikut ini contoh pengaksesan dengan model mysql exntension yang ditunjukkan Contoh 1 dan PosgreSQL extension yang ditunjukkan Contoh 2
Contoh 1 :
- <?php
- /**
- * Contoh Penggunaan MySQL Extension
- * @author Pusat Ilmu Secara Detil
- * @version 1.0
- */
- mysql_connect("localhost", "root", "");
- mysql_select_db("mahasiswa");
- /*** Query Select ***/
- $query = mysql_query("select * from mhs");
- while($mhs = mysql_fetch_array($query))
- {
- print $mhs['nim'] .' - '. $mhs['nama'] .' - '.$mhs['alamat']. '<br />';
- }
- ?>
Output Contoh 1 :
Contoh 2 :
- <?php
- /**
- * Contoh Penggunaan PostgreSQL Extension
- * @author Pusat Ilmu Secara Detil
- * @version 1.0
- */
- pg_connect("host=localhost port=5432 dbname=mahasiswa user=posgres password=root" );
- /*** Query Select ***/
- $query = pgs_query("select * from mhs");
- while($mhs = pg_fetch_array($query))
- {
- print $mhs['nim'] .' - '. $mhs['nama'] .' - '.$mhs['alamat']. '<br />';
- }
- ?>
Output Contoh 2 :
Pengaksesan diatas untuk posgresql, kita harus mencantumkan port yaitu : 5432. Dan sintak yang digunakan antara MySQL dan PosgreSQL berbeda, seperti : mysql_connect() dan pg_connect(), mysql_query() dan pg_query(), mysql_fetch_array() dan pg_fetch_array().
Berikut ini kita akan gunakan konsep PDO untuk kedua jenis contoh diatas yang akan ditunjukkan oleh Contoh 3 sebagai implementasi konsep PDO untuk contoh 1 dan Contoh 4 sebaga implementasi konsep PDO untuk contoh 2.
Contoh 3:
- <?php
- /**
- * Contoh Penggunaan PDO MySQL
- * @author Pusat Ilmu Secara Detil
- * @version 1.0
- */
- try {
- // setup koneksi
- $dbh = new PDO("mysql:host=localhost;dbname=mahasiswa", "root", "",array(
- PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
- }
- catch(PDOException $e)
- {
- echo $e->getMessage();
- echo 'Gagal Koneksi.Pastikan string koneksi sesuai<br/>';
- }
- /*** Query Select ***/
- $sql = $dbh->prepare("SELECT * FROM mhs");
- $sql->execute();
- while($mhs = $sql->fetch())
- {
- print $mhs['nim'] .' - '. $mhs['nama'] .' - '.$mhs['alamat']. '<br />';
- }
- ?>
Contoh 4:
- <?php
- /**
- * Contoh Penggunaan PDO PGSQL
- * @author Pusat Ilmu Secara Detil
- * @version 1.0
- */
- try {
- // setup koneksi
- $dbh = new PDO("pgsql:host=localhost;dbname=mahasiswa", "root", "root",5432,array(
- PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
- }
- catch(PDOException $e)
- {
- echo $e->getMessage();
- echo 'Gagal Koneksi.Pastikan string koneksi sesuai<br/>';
- }
- /*** Query Select ***/
- $sql = $dbh->prepare("SELECT * FROM mhs");
- $sql->execute();
- while($mhs = $sql->fetch())
- {
- print $mhs['nim'] .' - '. $mhs['nama'] .' - '.$mhs['alamat']. '<br />';
- }
- ?>
Dari Contoh 3 dan Contoh 4, hampir tidak ada perbedaan dalam penggunaan database MySQL dan PostgreSQL. Kita cukup hanya merubah string koneksinya saja. Inilah yang disebut PDO memberikan layanan script PDO yang seragam kepada semua database yang disupportnya.
Pada artikel berikutnya kita akan membahas PDO sebagai abstraksi layer yang menjadi ide dasar kemunculan PDO.