Simple PHP Database Wrapper

Simple PHP Database Wrapper

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

Download Database Wrapper

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

Ricki K
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.