Belajar PDO (PHP Data Object)

Dari sekian banyak tutorial lokal mengenai PHP dan MySQL di Internet, hampir semuanya menggunakan extension mysql extension. Padahal kalo dilihat, extension itu sudah old school. Mungkin ada sedikit yang mulai beralih ke MySQLi extension walopun masih jarang ditemui juga. Sebenernya mulai PHP 5.1 sudah ada cara yang lebih baik dan dianjurkan daripada menggunakan extension mySQL dan MySQLi yaitu menggunakan PDO (PHP Data Object). PDO sendiri tidak bergantung kepada database MySQL saja, tapi bisa mendukung ke DBMS yang lain. Dan banyak framework PHP yang sudah menggunakan PDO secara default, salah satunya yii framework

Untuk secara singkat tentang PDO adalah sebagai berikut, diambil dari http://www.phpeveryday.com/articles/PHP-Data-Object/PDO-Tutorial-P842.html

PHP Data Object/PDO TOC Step By Step Tutorial PHP Data Object is a Database Connection Abstraction Library for PHP 5.

What is PDO?

  • a PHP5 extension written in a compiled language (C/C++)
  • a Lightweight DBMS connection abstract library (data access abstraction library)

Why PDO?

  • Support great number of database systems supported by PHP
  • You don’t need rewriting of many line code for each database. Just write one and run anywhere
  • Speed. PDO written in compiled language, PHP libraries (ADOdb, PEAR DB) written in an interpreted language
  • Your software more easy to install. Do not need third party software

Whenever you need PDO?

  • You need portable application that support many database system
  • You need speed

Saya juga baru akhir-akhir ini mencoba menggunakan PDO dalam menghubungakan PHP dengan MySQL. Berikut coba-coba saya dalam menggunakan PDO

[php]
<?php
/** filename : config.php  */
class Config {

private static $instance = NULL;
private static $dsn      = "mysql:host=localhost;dbname=jobsheet;";
private static $db_user  = ‘root’;
private static $db_pass  = ‘root’;

private function __construct() {

}
private function __clone() {

}
public static function getInstance() {

if (!self::$instance)
{
self::$instance = new PDO(self::$dsn, self::$db_user, self::$db_pass);
self::$instance-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
return self::$instance;
}
}

[/php]

Kelas config digunakan sebagai configurasi untuk menghubungkan dengan database MySQL. Sedangkan contoh penggunaanya sebenernya sama dengan menggunakan MySQL atau MySQLi extension, contohnya seperti ini

[php]

<?php
include ("config.php");
try{
$db = Config::getInstance();
$query = "SELECT * FROM your_table";
$stmt = $db->prepare($query);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_BOTH);
}catch(PDOException $e){
echo $e->getMessage();
}

?>
<table border="1">
<tr>
<th>Field 1</th><th>Field 2</th>
</tr>
<?php while($row = $stmt->fetch() ){ ?>
<tr>
<td><?php echo $row[‘field_name_1’] ?></td>
<td><?php echo $row[‘field_name_2’] ?></td>
</tr>

}
$stmt->closeCursor();
$db=null;
?>
</table>

[/php]

Karena ini adalah pertama kalinya, jika ada salah atau kurang mohon koreksinya.. Semoga bermanfaat..

Salam..

Referensi :

http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/

http://net.tutsplus.com/tutorials/php/php-database-access-are-you-doing-it-correctly/

http://net.tutsplus.com/tutorials/php/pdo-vs-mysqli-which-should-you-use/

http://id2.php.net/manual/en/book.pdo.php

http://www.php.net/manual/en/book.mysqli.php

http://php.net/manual/en/book.mysql.php

5 thoughts on “Belajar PDO (PHP Data Object)

    1. dudu Post author

      Sebenernya sama saja mas, yaitu menciptakan object / instansiasi object dari class PDO seperti berikut [php]$dbh = new PDO(‘mysql:host=localhost;dbname=test’, $user, $pass);[/php]

      cuma mungkin yang beda adalah cara mengaksesnya. Kalo sudah jadi object tinggal dipanggil di kelas itu, atau kelas lain. Penggunaan self cuma cara memanggilanya saja.

      http://php.net/manual/en/pdo.connections.php

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.