Posted by : Blogger Sabtu, 23 Januari 2016

Tutorial CRUD dalam PHP PDO

Mungkin sebelumnya anda sudah mengenal metode untuk menghubungkan PHP dengan database, yaitu dengan MySql extension dan MySqli extension. Selain dengan menggunakan 2 metode tersebut, ada satu lagi metode yang digunakan untuk menghubungkan PHP dengan database MySql, yakni dengan PDO extension. PDO (PHP Data Object) merupakan database akses layer pada PHP versi  5 keatas, PDO mendukung semua pengaksesan database yang menggunakan driver PDO seperti MySQL, Oracle, PostgreSQL dan sebagainya. Kita hanya perlu membuat satu script yang sama untuk mengakses database-database tersebut, yang berbeda hanyalah pada String koneksi ke databasenya, jadi penggunaan PDO akan mempermudah kita jika ingin bermigrasi database.
Pada PHP 5.6 PDO mendukung 12 jenis database :
  • CUBRID
  • MS SQL Server
  • Firebird
  • IBM
  • Informix
  • MySQL
  • MS SQL Server
  • Oracle
  • ODBC and DB2
  • PostgreSQL
  • SQLite
  • 4D
Untuk lebih jelasnya anda bisa melihat di http://www.php.net/manual/en/pdo.drivers.php
Berikut saya akan memberikan tutorial singkat implementasi CRUD (SELECT, INSERT, UPDATE, DELETE) menggunakan PDO.
Pertama yang harus dilakukan adalah melakukan koneksi ke database, disini saya membuat file PHP yang diberi nama koneksi.php
koneksi.php
01
02
03
04
05
06
07
08
09
10
11
12
13
<?php
 
$hostdb = 'localhost';
 
$namedb = 'nama_database';
 
$userdb = 'username';
 
$passdb = 'password';
 
$conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
 
?>
Untuk implementasi CRUD, saya membuat 4 file PHP yang diberi namainsert.php,update.php,delete.php,select.php
insert.php
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
 
//Menghubungkan dengan file koneksi.php
 
include('koneksi.php');
 
try {
 
$variabel1 = ‘nilai variabel1’;
 
$variabel2 = ‘nilai variabel2’;
 
$variabel3 = ‘nilai variabel3’;
 
$sql = "INSERT INTO nama_tabel(kolom1,kolom2,kolom3) VALUES(:nilai1,:nilai2,:nilai3)";
 
$res = $conn->prepare($sql);  //Variabel $conn berisi String koneksi ke database yang diambil dari file koneksi.php
 
$res->execute(array(
 
                  ':nilai1'=>$variabel1,
 
                  ':nilai2'=>$variabel2,
 
                  ':nilai3'=>$variabel3
 
                  )); 
 
$conn = null;        // Disconnect dari database
 
echo 'INSERT Sukses';
 
}
 
catch(PDOException $e) {
 
       echo $e->getMessage();
 
      //Eksepsi yang nantinya menghasilkan pesan error jika terjadi kesalahan saat mengeksekusi query
 
}
 
?>
update.php
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
 
//Menghubungkan dengan file koneksi.php
 
include('koneksi.php');
 
try {
 
$variabel1 = ‘nilai variabel1’;
 
$variabel2 = ‘nilai variabel2’;
 
$variabel3 = ‘nilai variabel3’;
 
$sql = " UPDATE nama_tabel SET kolom1 = :nilai1, kolom2 = :nilai2 WHERE kolom3 = :nilai3";
 
$res = $conn->prepare($sql);  //Variabel $conn berisi String koneksi ke database yang diambil dari file koneksi.php
 
$res->execute(array(
 
                  ':nilai1'=>$variabel1,
 
                  ':nilai2'=>$variabel2,
 
                  ':nilai3'=>$variabel3
 
                  )); 
 
$conn = null;        // Disconnect dari database
 
echo 'UPDATE Sukses';
 
}
 
catch(PDOException $e) {
 
     echo $e->getMessage();
 
     //Eksepsi yang nantinya menghasilkan pesan error jika terjadi kesalahan saat mengeksekusi query
 
}
?>
delete.php
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
 
//Menghubungkan dengan file koneksi.php
 
include('koneksi.php');
 
try {
 
$variabel1 = ‘nilai variabel1’;
 
$sql = " DELETE FROM nama_tabel WHERE kolom1 = :nilai1";
 
$res = $conn->prepare($sql);  //Variabel $conn berisi String koneksi ke database yang diambil dari file koneksi.php
 
$res->execute(array(
 
            ':nilai1'=>$variabel1
 
                  )); 
 
$conn = null;        // Disconnect dari database
 
echo 'DELETE Sukses';
 
}
 
catch(PDOException $e) {
 
     echo $e->getMessage();
 
     //Eksepsi yang nantinya menghasilkan pesan error jika terjadi kesalahan saat mengeksekusi query
 
}
 
?>
select.php
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
 
//Menghubungkan dengan file koneksi.php
 
include('koneksi.php');
 
try{
 
$sql = "SELECT kolom1,kolom2 FROM nama_tabel ";
 
$res = $conn->prepare($sql);  //Variabel $conn berisi String koneksi ke database yang diambil dari file koneksi.php
 
$res->execute();
 
$resArray = $res->fetchAll();
 
foreach ($resArray as $row){
 
                echo $row['kolom1'].' '.$row['kolom2']. ‘<br>’;
 
}
 
$conn = null;        // Disconnect dari database
 
}
 
catch(PDOException $e) {
 
     echo $e->getMessage();
 
     //Eksepsi yang nantinya menghasilkan pesan error jika terjadi kesalahan saat mengeksekusi query
 
}
 
?>
Pada implementasi CRUD diatas saya menggunakan prepare statement untuk menghindari SQL injection, jadi penggunaan PDO ini jauh lebih aman dibandingkan dengan metode pengaksesan database yang lain.

- Copyright © Altamonte - Blogger Templates - Powered by Blogger - Designed by ALTAMONTE -