Hot Articles

Kenapa Telinga Gatal dan Berair
joesep 2018-04-13 573

PHP PDO MySQL, Simpan Edit Hapus Data dengan PDO

joesep 2018-06-24 99

PDO (PHP Data Objects) adalah php extension untuk mengakses database, sama seperti mysql_query atau mysql_fetch_array. Saat ini fungsi seperti mysql_query dan mysql_fetch_array sudah di-deprecated dan akan segera dihapus. Oleh karena itu kita perlu segera beralih menggunakan PDO atau MySQLi untuk menyimpan, edit atau hapus data. PDO bisa dipakai untuk mengakses beberapa database berbeda, sedangkan MySQLi hanya untuk database mysql. Jika saat ini kita menggunakan database MySQL dan di kemudian hari berganti menggunakan database PostgreSQL maka kita tidak perlu lagi mengubah kode yang sudah dibuat.

Membuat Koneksi ke Database dengan PDO

Sebelumnya kita membuat koneksi ke database menggunakan fungsi mysql_connect seperti:

 

$host = "localhost";
$user = "root";
$password = "";
$database_name = "test";
mysql_connect($host, $user, $password);
mysql_select_db($database_name);

 

Menggunakan PDO juga cukup mudah dan hampir mirip, seperti:

$host = "localhost";
$user = "root";
$password = "";
$database_name = "test";
$pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password);


Kemudian dengan PDO kita bisa menggatur error mode, mengatur bagaimana penanganan error yang terjadi. Misal throw error yang terjadi.
 

$host = "localhost";
$user = "root";
$password = "";
$database_name = "test";
$pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));

Menyimpan Data dengan PDO

Misalkan kita punya sebuah tabel dengan nama siswa dengan struktur seperti:

Nama Field Tipe Data Keterangan
nis varchar(20) Nomor Induk siswa, Primary Key
nama varchar(50)  
jenis_kelamin char(1)  
tgl_lahir date  


Sebelumnya kita menggunakan mysql_query untuk menyimpan data seperti:
 

$host = "localhost";
$user = "root";
$password = "";
$database_name = "test";
mysql_connect($host, $user, $password);
mysql_select_db($database_name);
$query = "insert into siswa (nis,nama,jenis_kelamin,tgl_lahir) values ('001','Budi', 'L','1987-06-01')";
hasil = mysql_query($query);
if($hasil){
echo "Data siswa telah disimpan";
}else{
echo "Error! gagal menyimpan data siswa:".mysql_error();
}

Menggunakan PDO menjadi sedikit berbeda, seperti:

 

$host = "localhost";
$user = "root";
$password = "";
$database_name = "test";
$pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));
try{
    $query = $pdo->prepare("insert into siswa (nis,nama,jenis_kelamin,tgl_lahir) 
        values (:nis,:nama, :jenis_kelamin,:tgl_lahir)");
    $dataSiswa = array(
        ':nis' => '001',
        ':nama' => 'Budi',
        ':jenis_kelamin' => 'L',
        ':tgl_lahir' => '1987-06-01'
    );
    $query->execute($dataSiswa);
    echo "Data siswa telah disimpan";
}catch(PDOException $e){
    echo "Error! gagal menyimpan data siswa:".$e->getMessage();  
}

 

Menampilkan data dengan PDO Menampilkan data menggunakan PDO hampir sama dengan mysql_fetch_array. Sebelumnya kita menggunakan mysql_fetch_array untuk menampilkan data seperti:

 

<?php
$host = "localhost";
$user = "root";
$password = "";
$database_name = "test";
mysql_connect($host, $user, $password);
mysql_select_db($database_name);
$query = mysql_query("select * from siswa");
?>
<table>
<tr>
    <td>Nis</td>
    <td>Nama</td>
    <td>Jenis Kelamin</td>
    <td>TGL Lahir</td>
</tr>
<?php while($siswa = mysql_fetch_array($query)){?>
<tr>
    <td><?php echo $siswa['nis']?></td>
    <td><?php echo $siswa['nama']?></td>
    <td><?php echo $siswa['jenis_kelamin']?></td>
    <td><?php echo $siswa['tgl_lahir']?></td>
</tr>
<?php }?>
</table>

 

Jika menggunakan PDO akan menjadi :

<?php
$host = "localhost";
$user = "root";
$password = "";
$database_name = "test";
$pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));
$query = $pdo->prepare("select * from siswa");
$query->execute();
?>
<table>
<tr>
    <td>Nis</td>
    <td>Nama</td>
    <td>Jenis Kelamin</td>
    <td>TGL Lahir</td>
</tr>
<?php while($siswa = $query->fetch()){?>
<tr>
    <td><?php echo $siswa['nis']?></td>
    <td><?php echo $siswa['nama']?></td>
    <td><?php echo $siswa['jenis_kelamin']?></td>
    <td><?php echo $siswa['tgl_lahir']?></td>
</tr>
<?php }?>
</table>

 

Hapus Data dengan PDO Mengapus data dengan PDO. kurang lebih sama seperti edit data tapi lebih sederhana. Jika menggunakan mysql_query akan seperti:

<?php
$host = "localhost";
$user = "root";
$password = "";
$database_name = "test";
mysql_connect($host, $user, $password);
mysql_select_db($database_name);
$nis = "001";
$hasil = mysql_query("delete from siswa where nis='".$nis."'");
if($hasil){
    echo "Data siswa sudah dihapus";
}else{
    echo "Gagal menghapus data siswa:".mysql_error();
}

Sedangkan jika menggunakan PDO akan menjadi:

<?php
$host = "localhost";
$user = "root";
$password = "";
$database_name = "test";
$pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));
try{
    $query = $pdo->prepare("delete from siswa  where nis = :nis");
    $query->execute(array(
        ':nis' => '001'
    ));
    echo "Data siswa sudah dihapus";
}catch(PDOException $e){
    echo "Gagal menghapus data siswa:".$e->getMessage();
}

Keuntungan Menggunakan PDO Beberapa manfaat yang dapat diperoleh dari menggunakan PDO. Pertama PDO membantu mencegah SQL injection, PDO secara otomatis akan mengquote inputan user. Kedua PDO bisa digunakan untuk mengakses beberapa database berbeda. Jika hari ini kita menggunakan database MySQL, pada saat berganti database ke PostgreSQL maka tidak perlu lagi mengubah kode yang sudah dibuat. Yang ketiga PDO sudah mendukung database transaction. Yang keempat PDO lebih cepat bila dibandingkan dengan menggunakan fungsi mysql_query.

Tidak ada artikel terkait



Masukan email Anda untuk mendapatkan artikel terbaru.


close