PHP Database Driver, umumnya dulu sebagian programmer PHP menggunakan Database Driver dengan extension mysql yang prosedural. Namun sejak...
PHP Database Driver, umumnya dulu sebagian programmer PHP menggunakan Database Driver dengan extension mysql yang prosedural.
Namun sejak perkembangan versi PHP 5 yang begitu cepat dan standar pemrograman OOP(Object Oriented Programming) yang banyak dijadikan dasar utama dalam perancangan sistem, maka mungkin sudah saatnya menggunakan metode-metode baru untuk merancang sebuah sistem, salah satunya adalah menggunakan extension mysqli untuk Database Driver.
Ekstensi mysqli, atau seperti yang kadang-kadang dikenal mysql(), Mysqli dikembangkan untuk mengambil keuntungan dari fitur baru yang ditemukan di sistem MySQL versi 4.1.3 dan yang lebih baru.
Extension mysqli sudah disertakan dengan distro untuk versi PHP 5 keatas, jadi tidak perlu install modul/extension lagi untuk menggunkannya.
Ekstensi mysqli memiliki sejumlah manfaat, salah satunya adalah antarmuka yang berorientasi obyek memudahkan programmer implementasikan teknik OOP untuk sebuah projek aplikasi.
Sebelum mempraktekkan buat dulu struktur file seperti berikut pada webroot:
Berikut adalah PHP Class sederhana untuk Database Driver Mysqli, simpan di folder "lib" dengan nama Database.php :
Adapun cara penggunaanya adalah sebagai berikut :
1. Buat file bernama konfig.php simpan di folder "konfig" isinya seperti berikut :
2. Buat file bernama Basis.php simpan di folder "lib" isinya seperti berikut :
3. Buat file bernama index.php isinya seperti berikut :
4. Jalankan pada browser dengan url : http://localhost/fprojek/
Ubah file index.php sesuai kebutuhan aplikasi yang ingin di implementasikan.
Disegmen selanjutnya saya akan coba untuk posting cara membuat struktur sederhana projek MVC(Model View Controller) dengan pemanfaatan DB Driver ini dan beberapa Class sederhana lainnya.
komentar dan saran dipersilahkan.
Namun sejak perkembangan versi PHP 5 yang begitu cepat dan standar pemrograman OOP(Object Oriented Programming) yang banyak dijadikan dasar utama dalam perancangan sistem, maka mungkin sudah saatnya menggunakan metode-metode baru untuk merancang sebuah sistem, salah satunya adalah menggunakan extension mysqli untuk Database Driver.
Ekstensi mysqli, atau seperti yang kadang-kadang dikenal mysql(), Mysqli dikembangkan untuk mengambil keuntungan dari fitur baru yang ditemukan di sistem MySQL versi 4.1.3 dan yang lebih baru.
Extension mysqli sudah disertakan dengan distro untuk versi PHP 5 keatas, jadi tidak perlu install modul/extension lagi untuk menggunkannya.
Ekstensi mysqli memiliki sejumlah manfaat, salah satunya adalah antarmuka yang berorientasi obyek memudahkan programmer implementasikan teknik OOP untuk sebuah projek aplikasi.
Sebelum mempraktekkan buat dulu struktur file seperti berikut pada webroot:
- [fprojek]-(folder projek)
- [konfig]-(*folder baru)
- konfig.php - (*file konfig)
- [lib]-(*folder baru)
- Database.php - (*file lib)
- Basis.php - (*file lib)
- index.php - (*file index)
- [konfig]-(*folder baru)
- konfig.php - (*file konfig)
- [lib]-(*folder baru)
- Database.php - (*file lib)
- Basis.php - (*file lib)
- index.php - (*file index)
Berikut adalah PHP Class sederhana untuk Database Driver Mysqli, simpan di folder "lib" dengan nama Database.php :
/*
* Database.php
*
* Copyright 2014 Inp [fun9uy5@gmail.com]
* Simple Database Mysqli Driver Class.
*
*/
class Database extends mysqli {
private $kon;
public function __construct($dbhost,$dbuname,$dbpass,$dbuse,$dbport)
{
parent::__construct($dbhost,$dbuname,$dbpass,$dbuse,$dbport);
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}
else {
$this->kon = mysqli_connect($dbhost,$dbuname,$dbpass,$dbuse,$dbport);
}
}
public function free($result)
{
if(!empty($result))
mysqli_free_result($result);
}
public function close_kon()
{
mysqli_close($this->kon);
}
private function _quote($string = null) {
return ($string === null) ? 'NULL' : "'" . str_replace("'", "''", $string) . "'";
}
private function _clean($input){
$input=trim($input);
$input=stripslashes($input);
$input=is_numeric($input) ? intval($input) : mysqli_real_escape_string($this->kon,$input);
$input=htmlspecialchars($input);
return $input;
}
public function ex_query($query='')
{
//echo $query;
if($result = mysqli_query($this->kon,$query))
{
$row_cnt = mysqli_num_rows($result);
if($row_cnt > 0)
{
while ($obj = $result->fetch_assoc()) {
$data[] = $obj;
}
return $data;
}
else
{
return array();
}
$this->free($result);
}
else {
return array();
}
$this->close_kon();
}
public function ex_insert($tbl='',$data=array())
{
$jdt = count($data);$i = 0;$kolom = '';$isi = '';
foreach($data as $key => $val)
{
$kolom .= $key;
$isi .= $this->_quote($this->_clean($val));
$i++;
if($i != $jdt){
$kolom .= ',';
$isi .= ',';
}
}
$query = "INSERT INTO $tbl ($kolom) VALUE ($isi);";
//echo $query;
$result = mysqli_query($this->kon,$query);
if(mysqli_affected_rows($this->kon) > 0 || $result)
{
return true;
}
else
{
return false;
}
$this->close_kon();
}
public function ex_update($tbl='',$data=array(),$idx='')
{
$jdt = count($data);$i = 0;$set = '';$wid = '';
foreach($data as $key => $val)
{
$set .= $key . '=' .$this->_quote($this->_clean($val));
$i++;
if($i != $jdt){
$set .= ',';
}
}
$query = "UPDATE $tbl SET $set WHERE $idx;";
//echo $query;
$result = mysqli_query($this->kon,$query);
if(mysqli_affected_rows($this->kon) > 0 || $result)
{
return true;
}
else
{
return false;
}
$this->close_kon();
}
public function ex_delete($tbl='',$idx='')
{
$query = "DELETE FROM $tbl WHERE $idx;";
//echo $query;
$result = mysqli_query($this->kon,$query);
if(mysqli_affected_rows($this->kon) > 0)
{
return true;
}
else
{
return false;
}
$this->close_kon();
}
}
Adapun cara penggunaanya adalah sebagai berikut :
1. Buat file bernama konfig.php simpan di folder "konfig" isinya seperti berikut :
/* * konfig.php * * Copyright 2014 Inp [fun9uy5@gmail.com] * File konfigurasi. * */ //Konfigurasi koneksi server MySQL. $konfig['dbhost'] = ''; //isi dengan nama host server DB $konfig['dbuname'] = ''; //isi dengan nana usernya $konfig['dbpass'] = ''; //isi dengan password usernya $konfig['dbuse'] = ''; //isi dengan nama DB yang dipakai $konfig['dbport'] = ''; //isi dengan port server yang digunakan defaultnya : 3306
2. Buat file bernama Basis.php simpan di folder "lib" isinya seperti berikut :
/*
* Basis.php
*
* Copyright 2014 Inp [fun9uy5@gmail.com]
* Loader Class.
*
*/
//include file konfig
include_once('../konfig/konfig.php');
function __autoload($class_name)
{
if(file_exists('lib/'.$class_name . '.php')) {
require_once('lib/'.$class_name . '.php');
} else {
throw new Exception("Unable to load core $class_name Class file does not exist.");
}
}
/* Defined Lib global var */
try {
//DB-DRIVERS
$DB = new Database($konfig['dbhost'],$konfig['dbuname'],$konfig['dbpass'],$konfig['dbuse'],$konfig['dbport']);
//Validator => Class ini akan saya posting nanti
#$validator = new Validator();
//Session => Class ini akan saya posting nanti
#$sesi = new Sesi;
//Models => Penggunaan Model akan dibahas pada segment selanjutnya.
#require_once('models/User_model.php');
} catch (Exception $e) {
echo $e->getMessage(), "\n";
}
3. Buat file bernama index.php isinya seperti berikut :
/*
* index.php
*
* Implementasi Mysqli DB Driver
* File index untuk projek.
*
*/
/* Struktur tabel
CREATE TABLE IF NOT EXISTS `tbl_users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uname` varchar(100) NOT NULL,
`pass` varchar(100) NOT NULL,
`email` varchar(100) NOT NULL,
`nick_name` varchar(50) NOT NULL,
`status` enum('on','off') NOT NULL DEFAULT 'on',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
*/
//Include Loader
include_once('lib/Basis.php');
//Set properti tabel dan data :
$tabel = 'tbl_users';
$data = array('uname' => 'gun', 'pass' => '123456', 'email' => 'gun@example.com', 'nick_name' => 'Gun');
//Contoh eksekusi Insert
$DB->ex_insert($tabel, $data);
//Contoh eksekusi Update
$id = 1;
$data = array('uname' => 'gunawan', 'pass' => '654321', 'email' => 'gunawan@example.com', 'nick_name' => 'Gunawan');
$DB->ex_update($tabel, $data, "id = '$id'");
//Contoh select
$data = $DB->ex_query("SELECT * FROM $tabel;");
print_r($data);
4. Jalankan pada browser dengan url : http://localhost/fprojek/
Ubah file index.php sesuai kebutuhan aplikasi yang ingin di implementasikan.
Disegmen selanjutnya saya akan coba untuk posting cara membuat struktur sederhana projek MVC(Model View Controller) dengan pemanfaatan DB Driver ini dan beberapa Class sederhana lainnya.
komentar dan saran dipersilahkan.
COMMENTS