Input Data Menggunakan PDO Prepared Statements
Seperti yang sudah diejalskan sebelumnya saat mencoba prepared statements mysqli bahwasanya konsep prepared statements ini selain bisa digunakan pada php mysqli extension juga bisa digunakan dalam PDO (PHP Data Objects)
Saya tidak akan menjelaskan semuanya dari awal, contoh penggunaan serta pengertian terakit prepared statements ini sudah saya bahas pada artikel cara menampilkan data menggunakan php mysqli prepared.
Secara konsep, prepared statements pada PDO (PHP Data Objects) ini sama saja, maksudnya didalamnya ada proses prepare, bind param dan execute. Disini Saya akan ememeberikan contoh sederhana bagaimana proses menginput data ke database menggunakan PHP PDO Prepared statements. Saya akan memberikan contoh penggunaanya dengan menggunakan block try catch
Input Data Menggunakan PDO Prepared Statements
Saya akan memberikan 3 contoh teknik penulisan input data menggunakan PDO Prepared, intinya ini berbeda dengan Input Data ke MySQL Menggunakan PDO yang biasa. Karena query dengan data inti dibuat secara terpisah
Contoh PDO Prepared Statements Input Data #1
Contoh yang pertama ini adalah contoh penulisan yang standar dimana nantinya query dalam prepared akan diganti menggunakan tanda ?
<?php
try{
//PDO Prepared Statement
//buat koneksi
$koneksi=new PDO('mysql:host=localhost;dbname=hutang', "root", "");
//set error
$koneksi->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//buat variabel data utuk dijlankan di query
//simpan query
$perintah=$koneksi->prepare('INSERT INTO hutangku VALUES(?,?,?)');
//simpan dan jalankan query
//bind
$perintah->bindParam(1, $id);
$perintah->bindParam(2, $namahutang);
$perintah->bindParam(3, $nominal);
//buat variabel
$id="31";
$namahutang="Pajero Sport";
$nominal=2000;
//jalankan query
$perintah->execute();
//tampilkan jumlah data yang di eksekusi
echo $perintah->rowCount()."Berhasil disimpan";
}
catch(PDOException $salah){
echo "Gagal melakukan koneksi ke database server<br/>
Karena :".$salah->getMessage();
die();
}
?>
Contoh PDO Prepared Statements Input Data #2
Contoh yang kedua ini menggunakan name parameter, sederhananya nanti dalam query kita tidak lagi menggunakan tanda ? melainkan menggunakan nama kolom data yang bersangkutan.
<?php
try{
//PDO Prepared Statement named parameters
//buat koneksi
$koneksi=new PDO('mysql:host=localhost;dbname=hutang', "root", "");
//set error
$koneksi->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//buat variabel data utuk dijlankan di query
//simpan query
$perintah=$koneksi->prepare('INSERT INTO hutangku VALUES(:id, :namahutang, :nominal)');
//simpan dan jalankan query
//bind
$perintah->bindParam(':id', $id);
$perintah->bindParam(':namahutang', $namahutang);
$perintah->bindParam(':nominal', $nominal);
//buat variabel
$id="28"; //variabel data id bisa di set null supaya penomoran id otomatis
$namahutang="Pajero Sport";
$nominal=20000;
//jalankan query
$perintah->execute();
//tampilkan jumlah data yang di eksekusi
echo $perintah->rowCount()."Berhasil disimpan";
}
catch(PDOException $salah){
echo "Gagal melakukan koneksi ke database server<br/>
Karena :".$salah->getMessage();
die();
}
?>
Contoh PDO Prepared Statements Input Data #3
Dalam contoh yang ketiga, kita tidak akan lagi menggunakan proses bind param, namun datanya langsung di eksekusi (execute) didalam array
<?php
try{
//PDO Prepared Statement named parameters
//buat koneksi
$koneksi=new PDO('mysql:host=localhost;dbname=hutang', "root", "");
//set error
$koneksi->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//buat variabel data utuk dijlankan di query
//simpan query
$perintah=$koneksi->prepare('INSERT INTO hutangku VALUES(:id, :namahutang, :nominal)');
//simpan dan jalankan query
//bind
//buat variabel
$id=null; //variabel data id bisa di set null supaya penomoran id otomatis
$namahutang="Pajero Sport";
$nominal=20000;
//jalankan langsung tanpa bind
$perintah->execute(array(':id'=>$id,':namahutang'=>$namahutang,':nominal'=>$nominal));
//tampilkan jumlah data yang di eksekusi
echo $perintah->rowCount()."Berhasil disimpan";
}
catch(PDOException $salah){
echo "Gagal melakukan koneksi ke database server<br/>
Karena :".$salah->getMessage();
die();
}
?>
Kalau dalam contoh praktiknya, id atau nomor data umumnya tidak akan didefinisikan berapa nilainya, oleh karena itu id bisa di set null supaya pada saat data diinput dia akan melakukan penomoran secara otomatis dengan catatan bahwa id sudah di set auto increment (dijadikan kunci utama)
test komen popup, soalnya komen tersemat kagak ke load... :D
ReplyDeletepusing ah baca Input Data Menggunakan PDO Prepared Statements...sabodo ah
ReplyDeleteuntung disematkan, kalau nggak tak tinggalin nih artikel, dan banyak yang nggak load kolom komentar yang beginian teh....PUAS TAH