Lacodeid kali ini akan membahas bekerja dengan PHP PDO (PHP Data Object) sebelum memulai tahap pembuatan data berbasis object disini saya akan menjelaskan apa yang dimaksud dengan PHP PDO (PHP Data Objects) adalah interface universal yang disediakan PHP untuk koneksi database server, bahwa PDO tidak terikat dengan database tertentu, contoh bila anda lagi menggunakan Mysql sebagai database lalu anda ingin berpindah database ke database Oracle, pasti anda akan berpikir akan banyak melakukan perubahan pada koding yang telah anda buat berapa baris koding setiap page harus anda ganti disinilah letak kenapa anda harus menggenal PHP PDO (PHP Data Object) dengan menggunakan PDO anda tidak perlu melakukan perubahan pada baris koding anda, cukup anda ganti pemanggil koneksi databasenya saja.sebagai contoh :
Baca Juga : Search autocomplete dengan jquery php mysqli
Baca Juga : Search autocomplete dengan jquery php mysqli
<?php
class database
{
private $dsn;
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'database'//ganti nama databasenya saja,
'prefix' => 'tbl_',
'encoding' => 'UTF8',
'port' => '',
);
public function dbkoneksi() {
static $instance;
if ($instance === null) {
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => FALSE,
);
$dsn = 'mysql:host=' .$this->default['host'] . ';dbname=' .$this->default['database'] . ';charset=' .$this->default['encoding'];
$instance = new PDO($dsn, $this->default['login'], $this->default['password'], $opt);
}
return $instance;
}
}
diatas adalah contoh koneksi database berbasis PHP PDO (PHP Data Object) kelebihan dari PHP PDO (PHP Data Object) mendukung beberapa jenis database yang berbeda php 5.6 keatas yang telah menggunakan PHP PDO (PHP Data Object)
- CUBRID
- MS SQL Server
- Firebird
- IBM
- Informix
- MySQL
- MS SQL Server
- Oracle
- ODBC and DB2
- PostgreSQL
- SQLite
diatas adalah jenis database yang didukung oleh PHP PDO (PHP Data Object) disetiap kelebihan pasti ada kekurangannya, kekurang dari PHP PDO (PHP Data Object) system ini hanya berjalan di data berbasis objects.
dari penjelasan singkat diatas saya rasa anda sudah paham tentang PHP PDO (PHP Data Object), sekarang cara bekerja menggunakan PHP PDO (PHP Data Object) dan penerapannya….
Baca Juga : Slug untuk seo friendly website
Baca Juga : Slug untuk seo friendly website
sekarang kita masuk ketahap bekerja dengan PHP PDO (PHP Data Object) silakan anda buat folder latihan anda di dalam folder localhost anda lalu buat name file php (index.php, dbconfig.php, class.crud.php) sekarang buat tabel databasenya seperti dibawah ini tbl_users :
CREATE TABLE IF NOT EXISTS `tbl_users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(25) NOT NULL,
`last_name` varchar(25) NOT NULL,
`email_id` varchar(50) NOT NULL,
`contact_no` bigint(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=27 ;
lalu anda buat koneksi databasenya dahulu di file dbconfig.php untuk kodingnya seperti dibawah ini
<?php
class database
{
private $dsn;
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'database',
'prefix' => 'tbl_',
'encoding' => 'UTF8',
'port' => '',
);
public function dbkoneksi() {
static $instance;
if ($instance === null) {
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => FALSE,
);
$dsn = 'mysql:host=' .$this->default['host'] . ';dbname=' .$this->default['database'] . ';charset=' .$this->default['encoding'];
$instance = new PDO($dsn, $this->default['login'], $this->default['password'], $opt);
}
return $instance;
}
}
$dbconn = new database();
$dbs = $dbcon->dbkoneksi();
include_once 'class.crud.php'//ini class crud;
$crud = new crud($dbs);//variabel $crud
kode diatas digunakan untuk koneksi database server, database menggunakan New PDO(PHP Data Objects) yang menandakan pemanggil database anda berbasis objects, bagaimana cara memangil class koneksi databasenya kedalam latihan anda cukup mudah, cukup anda panggil nama file php databasenya contoh dalam file index.php cukup anda buat seperti dibawah ini :
include_once ‘dbconfig.php’;
$dbconn = new database();// ini untuk nama class databasenya, karena nama classnya database boleh dengan nama anda sendiri biar lebih mudah menggigatnya sedangkan dibawah ini untuk memangil nama functionnya
$db = $dbconn->
dbkoneksi()//sedangkan ini untuk nama public function databasenya
diatas cara pemangilan class databasenya, sekarang cara membuat CRUD(Create, Read, Update, Delete)nya silakan buat satu lagi file php dengan nama class.crud.php lalu anda buat classnya seperti dibawah ini
<?php
class crud {
//ini class CRUD
private $db;
function __construct($dbs) {
$this->db = $dbs;//variabel databasenya
}
public funtion create(){
//function create
}
public function update(){
//function update
}
public function read(){
//function read
}
public function delete(){
//function delete
}
}
diatas adalah class crudnya, untuk public function create kodingnya seperti dibawah ini :
public function create($fname,$lname,$email,$contact)
{
try
{
$stmt = $this->db->prepare("INSERT INTO tbl_users(first_name,last_name,email_id,contact_no) VALUES(:fname, :lname, :email, :contact)");
$stmt->bindparam(":fname",$fname);
$stmt->bindparam(":lname",$lname);
$stmt->bindparam(":email",$email);
$stmt->bindparam(":contact",$contact);
$stmt->execute();
return true;
}
catch(PDOException $e)
{
echo $e->getMessage();
return false;
}
}
Koding diatas untuk input/insert data kedalam databasenya, sedangkan untukpublic function update koding updatenya seperti dibawah ini :
public function update($id,$fname,$lname,$email,$contact) { try { $stmt=$this->db->prepare("UPDATE tbl_users SET first_name=:fname, last_name=:lname, email_id=:email, contact_no=:contact WHERE id=:id "); $stmt->bindparam(":fname",$fname); $stmt->bindparam(":lname",$lname); $stmt->bindparam(":email",$email); $stmt->bindparam(":contact",$contact); $stmt->bindparam(":id",$id); $stmt->execute(); return true; } catch(PDOException $e) { echo $e->getMessage(); return false; } }
Koding diatas untuk update data dalam databasenya, untu public function deletekode delete seperti dibawah ini :
public function delete($id)
{
$stmt = $this->db->prepare("DELETE FROM tbl_users WHERE id=:id");
$stmt->bindparam(":id",$id);
$stmt->execute();
return true;
}
potongan koding diatas untuk delete data dalam database, untuk koding public function getShow datanya seperti dibawah ini :
public function getShow() { $query = "SELECT * FROM tbl_users"; $stmt = $this->db->prepare($query); $stmt->execute(); if($stmt->rowCount()>0) { while($row=$stmt->fetch(PDO::FETCH_ASSOC)) { echo $row['first_name'].'<br>'; echo $row['last_name'].'<br>'; echo $row['email_id'].'<br>'; echo $row['contact_no'].'<br>'; } } return TRUE; }
untuk mencoba beberapa potongan koding diatas silakan anda buat file index.phpdidalam folder latihan anda untuk kodingnya seperti dibawah ini :
<?php
include_once 'dbconfig.php';
$crud->create('Lacodeid','pdo','example@mail.com','1234567890');//insert
$crud->update('32','Lacodeid','pdo php','example@mail.com','1234567890');//update
$crud->delete('32');//delete
$crud->getShow();//tampilkan data
?>
untuk variabel $crud ini berada di file dbconfig.php, koding lengkapnya seperti dibawah ini :
file dbconfig.php
class database
{
private $dsn;
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'database',
'prefix' => 'tbl_',
'encoding' => 'UTF8',
'port' => '',
);
public function dbkoneksi() {
static $instance;
if ($instance === null) {
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => FALSE,
);
$dsn = 'mysql:host=' .$this->default['host'] . ';dbname=' .$this->default['database'] . ';charset=' .$this->default['encoding'];
$instance = new PDO($dsn, $this->default['login'], $this->default['password'], $opt);
}
return $instance;
}
}
$dbcon = new database();
$dbs = $dbcon->dbkoneksi();
include_once 'class.crud.php';
$crud = new crud($dbs);
file class.crud.php
<?php
class crud {
private $db;
function __construct($dbs) {
$this->db = $dbs;
}
public function create($fname,$lname,$email,$contact)
{
try
{
$stmt = $this->db->prepare("INSERT INTO tbl_users(first_name,last_name,email_id,contact_no) VALUES(:fname, :lname, :email, :contact)");
$stmt->bindparam(":fname",$fname);
$stmt->bindparam(":lname",$lname);
$stmt->bindparam(":email",$email);
$stmt->bindparam(":contact",$contact);
$stmt->execute();
return true;
}
catch(PDOException $e)
{
echo $e->getMessage();
return false;
}
}
public function getID($id)
{
$stmt = $this->db->prepare("SELECT * FROM tbl_users WHERE id=:id");
$stmt->execute(array(":id"=>$id));
$editRow=$stmt->fetch(PDO::FETCH_ASSOC);
return $editRow;
}
public function update($id,$fname,$lname,$email,$contact)
{
try
{
$stmt=$this->db->prepare("UPDATE tbl_users SET first_name=:fname,
last_name=:lname,
email_id=:email,
contact_no=:contact
WHERE id=:id ");
$stmt->bindparam(":fname",$fname);
$stmt->bindparam(":lname",$lname);
$stmt->bindparam(":email",$email);
$stmt->bindparam(":contact",$contact);
$stmt->bindparam(":id",$id);
$stmt->execute();
return true;
}
catch(PDOException $e)
{
echo $e->getMessage();
return false;
}
}
public function delete($id)
{
$stmt = $this->db->prepare("DELETE FROM tbl_users WHERE id=:id");
$stmt->bindparam(":id",$id);
$stmt->execute();
return true;
}
public function getShow() {
$query = "SELECT * FROM tbl_users";
$stmt = $this->db->prepare($query);
$stmt->execute();
if($stmt->rowCount()>0) {
while($row=$stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['first_name'].'<br>';
echo $row['last_name'].'<br>';
echo $row['email_id'].'<br>';
echo $row['contact_no'].'<br>';
}
}
return TRUE;
}
}
silakan dipelajari dan dikembangkan salam lacodeid semoga tutorial singkat ini bermanfaat buat anda yang lagi belajar php dll…
Baca Juga : Create Checkbox Stylish Toggles with PHP Ajax
Baca Juga : Create Checkbox Stylish Toggles with PHP Ajax
Posting Komentar
Posting Komentar