21 Desember 2011

Koneksi Database MySQL Dengan Doctrine DBAL

PHP DatabaseDoctrine DBAL merupakan library PHP untuk koneksi ke database dengan cara kerja API yang mirip dengan API dari PDO. Kelebihan Doctrine DBAL daripada memakai PHP PDO class secara langsung yaitu adanya abstraksi kode PHP terhadap berbagai macam driver PDO sehingga kode PHP yang kita tulis akan lebih portable, memungkinkan untuk penggunaan custom driver database dan beberapa fitur tambahan.

Untuk menginstal library Doctrine DBAL, cara paling mudah adalah dengan menggunakan tool pear.

$ sudo pear channel-discover pear.doctrine-project.org$ sudo pear install doctrine/DoctrineCommon

Untuk mengetahui letak folder instalasi bisa diketahui dengan perintah berikut

$ pear list-files doctrine/DoctrineCommon$ pear install doctrine/DoctrineDBAL

Kemudian cek instalasi dengan perintah berikut

$ pear list-files doctrine/DoctrineDBAL

Dalam OS Fedora 16 yang saya pakai default instal untuk PHP pear berada dalam folder “/usr/share/pear”.

Untuk contoh database penulis menggunakan database Employees yang bisa didownload di Launchpad. Untuk instalasinya bisa dilihat online di sini atau pada file README.

Berikut merupakan class PHP sederhana yang fungsi utamanya membuat koneksi ke database MySQL dengan menggunakan Doctrine DBAL.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 * Author By Equan Pr. */ use Doctrine\Common\ClassLoader;use Doctrine\DBAL\Configuration;use Doctrine\DBAL\DriverManager; require '/usr/share/pear/Doctrine/Common/ClassLoader.php'; class Dbalmysql{ protected $conn;  /** * @param $dbname * @param $user * @param $password */ public function __construct($dbname, $user, $password) { /** * Sesuaikan letak library Doctrine DBAL disini */ $classLoader = new ClassLoader("Doctrine", "/usr/share/pear"); $classLoader->register();  $config = new Configuration();  $connectionParams = array( 'dbname' => $dbname, 'user' => $user, 'password' => $password, 'driver' => 'pdo_mysql' );  $conn = DriverManager::getConnection($connectionParams, $config); $this->conn = $conn; }  private function setConn($conn){ $this->conn = $conn; }  /** * @return Doctrine\DBAL\Doctrine\DBAL\Connection */ public function getConn(){ return $this->conn; }} ?>

Jika penginstalan Doctrine DBAL dilakukan secara manual (tidak menggunakan pear) pastikan letak library Doctrine DBAL disesuaikan di parameter kedua dari ClassLoader pada baris 45 diatas (sesuaikan “/usr/share/pear”). Untuk contoh pemakaian class dbalmysql.php diatas bisa dilihat pada list kode dibawah ini

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 * Author By Equan Pr. * */require 'dbalmysql.php'; /* * Sesuaikan setting database disini */$db_name ="employees";$db_user ="root";$db_pass ="your_password"; $dbal_mysql = new Dbalmysql($db_name, $db_user, $db_pass);$conn = $dbal_mysql->getConn(); /** * Query statement */$sql = "SELECT * FROM employees LIMIT 10"; try {  /** * Ambil data dari database */ $stmt = $conn->query($sql);  while ($row = $stmt->fetch()) { echo $row['first_name'] . "\n"; }  /** * Kalo ada error maka pesan error akan ditampilkan */} catch (PDOException $ex) { echo "Error: " . $ex->getMessage();} ?>

Untuk pengetesan jalankan perintah berikut pada command shell

atau letakkan file-file diatas index.php dan dbalmysql.php di webserver yang support PHP 5.3 keatas dan buka file index.php melalui browser.

Posting ini bermanfaat...atau ada pertanyaan ?, jangan lupa untuk menulis komentar ok.


View the original article here

Ikuti Blog ini

Langganan

Mau dapet Update-an Blog ini lewat e-mail? Masukkin aja alamat Email kamu disini:

Dikirim Oleh FeedBurner