PHP PDO MySQL, Simpan Edit Hapus Data dengan PDO
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.
Menggunakan PDO juga cukup mudah dan hampir mirip, seperti:

Kemudian dengan PDO kita bisa menggatur error mode, mengatur bagaimana penanganan error yang terjadi. Misal throw error yang terjadi.
Sebelumnya kita menggunakan mysql_query untuk menyimpan data seperti:
Menggunakan PDO menjadi sedikit berbeda, seperti:
Jika menggunakan PDO akan menjadi
sedangkan menggunakan PDO akan menjadi:
Sedangkan jika menggunakan PDO akan menjadi:
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);
$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:
<?php $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:
<?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("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>
Mengedit Data dengan PDO
Mengedit data menggunakan PDO hampir mirip dengan cara menyimpan data di atas. Menggunakan mysql_query untuk mengedit data akan seperti:
<?php $host = "localhost"; $user = "root"; $password = ""; $database_name = "test"; mysql_connect($host, $user, $password); mysql_select_db($database_name); $query = "update siswa set nama = 'Budi Setio',jenis_kelamin = 'L',tgl_lahir='1988-06-01' where nis='001'"; hasil = mysql_query($query); if($hasil){ echo "Data siswa telah diupdate"; }else{ echo "Error! gagal mengedit data siswa:".mysql_error(); }
sedangkan 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("update siswa set nama = :nama, jenis_kelamin = :jenis_kelamin, tgl_lahir = :tgl_lahir where nis = :nis"); $data = array( ':nama' => 'Budi Setio', ':jenis_kelamin' => 'L', ':tgl_lahir' => '1988-06-01', ':nis' => '001' ); $query->execute($data); echo "Data siswa telah diupdate"; }catch(PDOException $e){ echo "Error! gagal mengedit data siswa:".$e->getMessage(); }
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(); }
mantap gan....
ReplyDeleteane jg buat versi OOP nya + Fetch object
http://codetrash.com/tutorial/php/42/tutorial-contoh-aplikasi-sederhana-menampilkan-data-dgn-pdo-mysql