Tutorial PHP MySQL Part 22: Cara Menginput Data MySQL dengan PDO (PHP Data Object)

Setelah membahas tentang cara menampilkan hasil MySQL dengan PDO, berikutnya dalam tutorial PHP MySQL kali ini kita akan membahas tentang cara menginput data MySQL menggunakan PDO.


 Cara Menginput data MySQL dengan PDO

Secara garis besar, proses menginput data MySQL dengan PDO tidak jauh berbeda dengan cara menampilkan data dengan PDO yang telah kita bahas pada tutorial sebelumnya.

PHP menyediakan banyak cara untuk menginputkan data kedalam MySQL menggunakan PDO extension. Pada tutorial ini kita akan membahas 2 diantaranya, yakni menggunakan method PDO->query() dan PDO->exec().

Menginput data MySQL dengan PDO->query()

Untuk menginput data MySQL dengan method PDO->query(), kita tinggal menambahkan query INSERT atau UPDATE kedalam method ini.

Sebagai contoh, saya ingin menambahkan 1 data baru ke dalam tabel mahasiswa_ilkom. Berikut adalah contoh kode programnya:

<?php
try {
   // buat koneksi dengan database
   $dbh = new PDO('mysql:host=localhost;dbname=universitas', "root", "");
 
   // set error mode
   $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
   $query= 'INSERT INTO mahasiswa_ilkom VALUES
   ("099023022", "Ayla Ramadhani", 20, "Aceh", 3.1)';
 
   // jalankan query
   $result = $dbh->query($query);

   // tampilkan hasil proses query
   echo $result->rowCount()." data berhasil ditambahkan";
 
   // hapus koneksi
   $dbh = null;

} catch (PDOException $e) {
   // tampilkan pesan kesalahan jika koneksi gagal
   print "koneksi/query bermasalah: " . $e->getMessage() . "<br/>";
   die();
}
?>

Sebagian besar function dan method diatas sudah kita pelajari dalam beberapa tutorial sebelum ini.

Setelah proses koneksi dan men-set error display, saya membuat sebuah string untuk menampung query INSERT, yakni di dalam variabel $query. Kemudian query dijalankan dengan method $dbh->query($query).

Setelah query di jalankan, kita bisa mengetahui berapa baris tabel MySQL yang ditambahkan menggunakan method $result->rowCount().

Apabila anda menjalankan perintah diatas, hasil yang ditampilkan adalah:

1 data berhasil ditambahkan

Sebagai latihan, silahkan anda tambahkan kode program diatas untuk menampilkan data tabel mahasiswa_ilkom setelah proses input data.

Menginput data MySQL dengan PDO->exec()

Selain menggunakan method PDO->query(), kita juga bisa menggunakan method PDO->exec() untuk menjalankan query MySQL. Cara penulisan method PDO->exec() juga sangat mirip dengan method PDO->query().

Mari kita lihat bagaimana cara menambahkan 1 data ke dalam tabel mahasiswa_ilkom menggunakan method PDO->exec():

<?php
try {
   // buat koneksi dengan database
   $dbh = new PDO('mysql:host=localhost;dbname=universitas', "root", "");
 
   // set error mode
   $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
   $query= 'INSERT INTO mahasiswa_ilkom VALUES
   ("109013027", "Siska Rosiana", 19, "Bengkulu", 2.9)';
 
   // jalankan query
   $result = $dbh->exec($query);
 
   // tampilkan hasil proses query
   echo $result." data berhasil ditambahkan";
 
   // hapus koneksi
   $dbh = null;

} catch (PDOException $e) {
   // tampilkan pesan kesalahan jika koneksi gagal
   print "koneksi/query bermasalah: " . $e->getMessage() . "<br/>";
   die();
}
?>

Dari kode diatas, method $dbh->exec($query) akan menjalankan query yang disimpan dari variabel $query. Untuk menampilkan jumlah data yang ditambahkan, kita bisa langsung menggunakan variabel $result hasil method $dbh->exec($query).

Jika anda menjalankan kode diatas, maka hasil yang didapat adalah sebagai berikut:

1 data berhasil ditambahkan

Setelah mempelajari cara menampilkan dan menginput data menggunakan PDO PHP, dalam tutorial berikutnya kita akan membahas fitur PDO yang lebih 'advanced', yakni Cara Menggunakan Prepared Statement dengan PDO PHP.

8 Comments

  1. adnanp
    09 Jun 15
    • Andre
      10 Jun 15
  2. Xabi Corazon
    10 Aug 15
  3. Ijul
    26 Dec 15
    • Andre
      29 Dec 15
  4. sukipri
    21 May 17
  5. Bayura
    08 Jan 18
    • Andre
      08 Jan 18

Add Comment

Leave a Reply to sukipri Cancel reply