2011-09-10

Pear db part 1


mungkin anda akan bingung ttg penggunaan DB? terutama pemula ataupun yg sudah sering pake DB.. berikut gw mo share ttg melakukan query / melakukan aksi2 database memakai PEAR

untuk yg memakai XAMPP
,
enaknya udah tersedia. Tetapi bila anda terlanjur pake yang lain.. atau mungkin pasang manual dan anda kebingungan.. tolong info aja.. nanti kubantu..

dalam tulisan sy sebelumnya ttg mysql / database.. sy mengingatkan bahwa ada 3 hal penting dalam database yaitu koneksi, query dan hasil
pada tulisan ini sy tambahkankan satu.. yaitu menutup koneksi. Secara garis besar
  1. buka koneksi
  2. melakukan aksi dalam hal ini query
  3. mendapatkan hasil
  4. menutup koneksi
dan seperti tulisan sebelumnya, kita wajib melakukan pengechekan pada step 1 dan 2

dalam PEAR kita harus mengenal cara melakukan koneksi. Tetapi untuk kasus ini PEAR tidak untuk 1 database engine saja, melainkan lebih. Jadi dengan PEAR, kamu bisa membuat koneksi untuk Oracle, Posgress dan lain-lain. Hal yang menyenangkan (semoga ) dan menjadi keunggulan PEAR adalah kamu tidak perlu banyak menyesuaikan penulisan program untuk melakukan query. bs dibilang bila aplikasi/web kamu ini yg awalnya pake mysql dan akan diubah memakai oracle, maka sintax yang kamu buat tidak perlu di ubah.


dalam PEAR, dbms yg di dukung adalah
  • dbase -> dBase
  • fbsql -> FrontBase (functional since DB 1.7.0)
  • ibase -> InterBase (functional since DB 1.7.0)
  • ifx -> Informix
  • msql -> Mini SQL (functional since DB 1.7.0)
  • mssql -> Microsoft SQL Server (NOT for Sybase. Compile PHP --with-mssql)
  • mysql -> MySQL (for MySQL <= 4.0)
  • mysqli -> MySQL (for MySQL >= 4.1) (requires PHP 5) (since DB 1.6.3)
  • oci8 -> Oracle 7/8/9
  • odbc -> ODBC (Open Database Connectivity)
  • pgsql -> PostgreSQL
  • sqlite -> SQLite
  • sybase -> Sybase
untuk post ini saya berikan script koneksi ke mysql
<?php require_once 'DB.php';
$dsn1 = array(
    
'phptype'  => 'mysqli',
    
'username' => 'nasgor',
    
'password' => '123123',
    
'hostspec' => 'localhost',
    
'database' => 'test',
);
 
$dsn2 = array(
    
'phptype'  => 'sqlite',
    
'database' => 'mydb',
    
'mode'     => '0644',
);

$options = array(
    
'debug'       => 2,
    
'portability' => DB_PORTABILITY_ALL,
);
$db1 =& DB::connect($dsn1$options);
if (
PEAR::isError($db1)) {
    
$err.="<br>DB 1: ".$db1->getMessage();
}
$db2 =& DB::connect($dsn2$options);
if (
PEAR::isError($db2)) {
    
$err.="<br>DB 2: ".$db2->getMessage();
}
$res =& $db1->query('SELECT * FROM clients ');
if (
PEAR::isError($res)) {
    
$err.="<br>DB 1 sql: ".$res->getMessage();
}
$db1->disconnect();

if(
$err) echo "ERROR:
<font color=red>$err</font>"
;
sebelumnya mari kita pelajari isi dari $dsn. dsn berisi config dari database anda, dimana untuk mysql kita deklrasi di phptype

$dsn = array(
    
'phptype'  => false,
    
'dbsyntax' => false,
    
'username' => false,
    
'password' => false,
    
'protocol' => false,
    
'hostspec' => false,
    
'port'     => false,
    
'socket'   => false,
    
'database' => false,
); 
untuk sesuatu yg sensitif misalnya port, lakukan config di port dan socket. Bila tidak maka akan menggunakan port dan socket yg standar sesuai dgn type dbms yg kita pakai

pada tulisan ini juga sy berikan 1 contoh.. contoh yg benar (inputnya) dan contoh yg salah. Dimana contoh yang salah harus mengeluarkan error.

di dalam PEAR Ini, kita dapat menangkap error dengan

if (PEAR::isError($res)) {
    
$err.="<br>DB 1 sql: ".$res->getMessage();
dan terakhir jangan lupa.. untuk kedepannya kita harus ingat untuk
$db1->disconnect(); 
menutup koneksi

fungsi yang kita pelajari saat ini
connect (
 mixed $dsn [, 
 array $options = array()]
)
dan
isError()
 You're generally better off using PEAR::isError() 
instead of the DB specific isError(). 
 lebih utama pake PEAR::isError() 
dibandingkan
memakai DB
jgn lupa ttg isi dsn

download aja di
http://www.mediafire.com/?iwmqimma4d3dqqx

Tidak ada komentar: