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
- Intro9 Oktober 2024Cara Menjadi YouTuber: Panduan Lengkap untuk Pemula
- Tips & Trick9 Oktober 2024Affiliate yang Banyak Diminati di Indonesia
- Intro3 Oktober 202410 Anime yang Keren Musim 2024
- Tips & Trick3 Oktober 202410 Website Baca Manga Online yang Keren