Assalamualaikum wr.wb.
Oke jumpa kembali dengan saya, masih seputar CRUD dengan PDO (PHP Data Objek),
pada kali ini saya akan menulis tutorial memasukkan Data ke database mysql dengan PDO, apa itu PDO? Untuk penjelasan lebih lengkap mengenai PDO bisa lihat tutorial saya disini. Bagi yg sudah paham yuk mari kita lanjut ke tutorial.
Pertama download Databasenya disini.
setelah Databasenya siap, mari kita buat koneksi PDO terlebih dahulu.
<?php error_reporting(0); try{ $koneksi=new PDO("mysql:host=localhost;dbname=coba","root","12345"); }catch(PDOException $e){ echo "Koneksi Gagal ".$e->getMessage(); }
Dicoba dulu gan, berhasil atau tidak. Kalau tidak ada pesan “Koneksi Gagal” insyaAllah 99,99% koneksi sudah berhasil, sekarang lanjut untuk memasukkan datanya.
sekedar pengetahuan, didalam PDO ada dua cara untuk memanipulasi data pada database
- menggunakan named placeholder “:” (tanda titik dua)
- menggunakan question mark placeholder “?” (tanda tanya)
contoh menggunakan named placeholder “:” (tanda titik dua)
// buat 2 variabel sebagai data yg akan dimasukkan kedalam Database. $nama="bukubaru"; $harga=5000; $insert=$koneksi->prepare("insert into buku (nama_buku,harga_buku) values (:nama_buku,:harga_buku)"); //named placeholder :nama_buku mengambil nilai dari $nama $insert->BindParam(':nama_buku',$nama); //named placeholder :harga_buku mengambil nilai dari $harga $insert->BindParam(':harga_buku',$harga); $insert->execute(); // jika TIDAK ada baris yg terpengaruh (data gagal masuk ke database) maka cetak “gagal” if($insert->rowCount()==0){ echo "Gagal"; } //Jika ada baris yang terpengaruh (data berhasil masuk) cetak “berhasil” else{ echo "Berhasil"; }
Kemudian kita jalankan. Dan lihat hasilnya
cek didatabase apakah benar-benar berhasil.
yups . . ternyata berhasil.
Sekarang kita coba menggunakan cara yang kedua, yaitu menggunakan question mark placeholder “?” (tanda tanya) .
langsung saja berikut codenya.
//ubah dulu nilai variabel nama dan harga agar tidak sama dengan contoh yang tadi. $nama="bukukedua"; $harga=1000; $insert=$koneksi->prepare("insert into buku (nama_buku,harga_buku) values (?,?)"); // question mark placeholder pertama (tanda “?” pertama) mengambil dari $nama $insert->BindParam(1,$nama); // question mark placeholder kedua (tanda “?” kedua) mengambil dari $harga $insert->BindParam(2,$harga); $insert->execute(); if($insert->rowCount()==0){ echo "Gagal"; }else{ echo "Berhasil"; }
Kemudian dicoba, dan lihat hasilnya.
yups berhasil.
Mungkin diantara pembaca ada yang masih bingung dengan statement dibawah ini.
if($insert->rowCount()==0){
echo "Gagal";
}else{
echo "Berhasil";
}
kenapa kalau sama dengan 0 hasilnya gagal ?
statement rowCount() mengembalikan nilai dari baris yg terpengaruh, jika dalam hal ini memasukkan data ke dalam suatu tabel, maka baris dari tabel tersebut bertambah 1, atau secara sederhananya ketika kita memasukkan data kedalam tabel di database maka baris pada tabel tersebut akan bertambah 1,
dan apabila tidak bertambah atau 0, maka querynya gagal dilakukan.
berikut FULL CODE-nya
Menggunakan named placeholder “:” (tanda titik dua)
<?php error_reporting(0); try{ $koneksi=new PDO("mysql:host=localhost;dbname=coba","root","12345"); }catch(PDOException $e){ echo "Koneksi Gagal ".$e->getMessage(); } // ini data yg akan dimasukkan $nama="bukubarus"; $harga=5000; $insert=$koneksi->prepare("insert into buku (nama_buku,harga_buku) values (:nama_buku,:harga_buku)"); $insert->BindParam(':nama_buku',$nama); $insert->BindParam(':harga_buku',$harga); $insert->execute(); if($insert->rowCount()==0){ echo "Gagal"; }else{ echo "Berhasil"; }
menggunakan question mark “?” placeholder
<?php error_reporting(0); try{ $koneksi=new PDO("mysql:host=localhost;dbname=coba","root","12345"); }catch(PDOException $e){ echo "Koneksi Gagal ".$e->getMessage(); } // ini data yg akan dimasukkan $nama="buskubarus"; $harga=5000; $insert=$koneksi->prepare("insert into buku (nama_buku,harga_buku) values (?,?)"); $insert->BindParam(1,$nama); $insert->BindParam(2,$harga); $insert->execute(); if($insert->rowCount()==0){ echo "Gagal"; }else{ echo "Berhasil"; }
disini kita bebas mau pilih cara yang mana, pilih saja sesuai selera
sekian semoga bermanfaat.
Wassalamualaikum wr. Wb.