
Database wrapper memungkinkan kita untuk bekerja dengan database seolah-olah itu adalah sebuah objek. Dengan kata lain, kita akan mencampur kode berorientasi objek dan kode relasional. Pendekatan ini adalah semacam jalan tengah dan mengharuskan kita untuk sedikit menekuk filosofi OOP. Keuntungannya adalah menjaga kinerja dan fitur basis data dengan harga sedikit menurunkan prinsip-prinsip OOP.
Pembungkus basis data sering diimplementasikan sebagai CRUD. Berarti mereka sudah dibuat untuk melakukan empat operasi data dasar (Create/Buat, Read/Baca, Update/Perbarui, Delete/Hapus).
Berikut merupakan contoh dari Database Wrapper yang admin lampirkan secara simple. Database Wrapper ini support MySQL dan MySQLi
/***********************************
SELECT
***********************************/
function select($query)
{
$this->getquery = $query;
if(strtolower($this->sql_type)=='mysql'){
$this->connect_to_mysql();
if(empty($this->getquery))
return false;
if(is_null($this->link))
return false;
// LOG
//$this->log_db('select', $this->sql_type, $query);
$result = @mysql_query($this->getquery,$this->link);
if((!$result) or empty($result) or $result == false)
{
die(print_r(@mysql_error(), true));
}
$count = 0;
$data = array();
while($row = @mysql_fetch_array($result, MYSQL_ASSOC))
{
$data[$count] = $row;
$count++;
}
@mysql_free_result($result);
return $data;
}
else if(strtolower($this->sql_type)=='mysqli'){
$this->connect_to_mysqli();
if(empty($this->getquery))
return false;
if(is_null($this->link))
return false;
// LOG
//$this->log_db('select', $this->sql_type, $query);
$result = @mysqli_query($this->link, $this->getquery);
if((!$result) or empty($result) or $result == false)
{
die(print_r(@mysqli_error(), true));
}
$count = 0;
$data = array();
while($row = @mysqli_fetch_array($result, MYSQLI_ASSOC))
{
$data[$count] = $row;
$count++;
}
@mysqli_free_result($result);
$this->close();
return $data;
}
else{
echo 'Please pass the correct DB Server name ( mysql & mysqli )';
}
}
/***********************************
INSERT
***********************************/
function insert($table , $data = array())
{
$res = false;
if(strtolower($this->sql_type)=='mysql'){
$this->connect_to_mysql();
if(!empty($data) && is_array($data))
{
$sql = 'INSERT INTO '.$table.' ';
$columns = array();
$values = array();
foreach($data AS $k => $v)
{
if(is_string($v))
{
$v = $this->stringval($v);
}
if(preg_match("/\bNULL\b/", $v))
{
$val = $v;
}
else{
$val = "'".$v."'";
}
$columns[] = $k;
$values[] = $val;
}
$columns = implode(',',$columns);
$values = implode(',',$values);
$sql.= "( ".$columns." ) VALUES ( ".$values." )";
// LOG
//$this->log_db('insert', $this->sql_type, $sql);
$res = @mysql_query($sql, $this->link);
if($res)
{
@mysql_insert_id();
}
}
//echo $sql;
return $res;
}
else if(strtolower($this->sql_type)=='mysqli'){
$this->connect_to_mysqli();
if(!empty($data) && is_array($data))
{
$sql = 'INSERT INTO '.$table.' ';
$columns = array();
$values = array();
foreach($data AS $k => $v)
{
if(is_string($v))
{
$v = $this->stringval($v);
}
if(preg_match("/\bNULL\b/", $v))
{
$val = $v;
}
else{
$val = "'".$v."'";
}
$columns[] = $k;
$values[] = $val;
}
$columns = implode(',',$columns);
$values = implode(',',$values);
$sql.= "( ".$columns." ) VALUES ( ".$values." )";
// LOG
//$this->log_db('insert', $this->sql_type, $sql);
$res = @mysqli_query($this->link, $sql);
if($res)
{
@mysqli_insert_id();
}
}
$this->close();
return $res;
}
else{
echo 'Please pass the correct DB Server name ( mysql & mysqli )';
}
}
Kode lengkapnya bisa di download pada link berikut
Penggunaan :
## KONEKSI
if (empty($db_mysql)) {
$host = "localhost";
$user_db = "msi";
$pass_db = "msi1";
$database = "db_fasilitas";
$db_mysql = new Database('mysqli', $host, $database, $user_db, $pass_db);
}
## SELECT
$db_mysql->select("SELECT * FROM TABLE-NAME");
## PUT DATA
global $db_mysql;
$db_mysql->insert("TABLE-NAME", array('data1' => '1', 'data2' => '2'));
$db_mysql->update("TABLE-NAME", array('data1' => '1', 'data2' => '2'), "id = 1");
$db_mysql->delete("TABLE-NAME", "id = '1'");
Demikian sekilas tentang database ssrapper sederhana yang admin tulis, semoga bermanfaat.
Author Profile
- Hi my name is Ricki, I am a blogger from Indonesia. Founder of erkamoo.com, Besides creating Web Applications, I also write about Blogging Tips and Tutorials on Programming, Databases, HTML.
Latest entries
Intro3 Januari 2025Manfaat Mindfulness untuk Kesehatan dan Produktivitas Pekerjaan di Tahun Baru
Tips & Trick3 Desember 202410 Rekomendasi Situs Download Game MOD (Terlengkap)
Tips & Trick3 November 202410 Emulator Game Android di PC dan Laptop yang Paling Digemari
Intro2 November 2024Handphone yang Paling Digemari di Indonesia