Your code is missing a call to Show
However, in you example you are not passing any variable data to the query and you only execute it once, which defeats a purpose of having prepared statement. You should use prepared statements if you need to have variables in your SQL, for example:
If there are no variables then you can simply use
If you do not need to fetch all records at once, you
can simply loop on the statement with
Untuk dapat menerapkan PDO (PHP Data Objects) anda harus membuat sebuah koneksi dengan PDO terlebih dahulu yang akan menghubungkan PHP dengan database, jika belum buat baca
Membuat Koneksi MySql Database dengan PDO. Kalau sudah membuat dan paham silahkan lanjutkan membaca artikel sederhana ini. Pada contoh ini saya menggunakan yang sederhana saja agar mudah dipahami bagi mereka yang baru memulai belajar PHP dan PDO, berikut adalah langkah-langkah penerapan PDO pada proses CRUD :
Tidak ada komentarSaya pasti senang jika anda dapat memberi komentar sebagai jejak anda dan masukan atau pendapat anda, bahkan mungkin dapat menjadi referensi bagi teman yang lain juga bermanfaat bagi perkembangan blogon.id dalam menulis artikelnya, tetapi ingat tidak berbau p*rno, sara, tidak memasang link aktif dan tentunya tidak melanggar hak cipta orang lain ya... Topik ini merupakan sambungan dari dua topik sebelumnya. Topik ini membutuhkan tabel toko.barang dan variabel PDO bernama $db pada file sambung.php pada topik koneksi PDO. Dan juga data pada topik eksekusi sql dengan PDO. Tetapi Anda juga dapat menggunakan data Anda sendiri untuk ujicoba di sini. Memanggil data dari database menggunakan PDO dapat dilakukan dengan Memanggil data dengan PDO::query<?php include "sambung.php"; $sth = $db->query("SELECT * FROM barang"); while ($barang = $sth->fetch()) { echo "<pre>".print_r($barang,true)."</pre>"; } ?> Output: stdClass Object ( [id] => 1 [tipe] => Chitato [kategori] => Snack [harga] => 7000 ) stdClass Object ( [id] => 2 [tipe] => Mr. P [kategori] => Snack [harga] => 4500 ) stdClass Object ( [id] => 3 [tipe] => Silver Queen Chunky Bar [kategori] => Snack [harga] => 9000 ) stdClass Object ( [id] => 4 [tipe] => Sprite [kategori] => Minuman [harga] => 7500 ) stdClass Object ( [id] => 5 [tipe] => Fanta [kategori] => Minuman [harga] => 7500 ) stdClass Object ( [id] => 6 [tipe] => Coca Cola [kategori] => Minuman [harga] => 7500 ) stdClass Object ( [id] => 7 [tipe] => Gudang Garam Surya [kategori] => Rokok [harga] => 17000 ) stdClass Object ( [id] => 8 [tipe] => Dji Sam Soe [kategori] => Rokok [harga] => 13500 ) Pada contoh di atas, perintah Perintah <?php include "sambung.php"; $sth = $db->query("SELECT * FROM barang"); echo "<b>Fetch Obj</b><br />"; $barang = $sth->fetch(PDO::FETCH_OBJ); echo "<pre>".print_r($barang,true)."</pre>"; echo "<b>Fetch Assoc</b><br />"; $barang = $sth->fetch(PDO::FETCH_ASSOC); echo "<pre>".print_r($barang,true)."</pre>"; echo "<b>Fetch Num</b><br />"; $barang = $sth->fetch(PDO::FETCH_NUM); echo "<pre>".print_r($barang,true)."</pre>"; echo "<b>Fetch Both</b><br />"; $barang = $sth->fetch(PDO::FETCH_BOTH); echo "<pre>".print_r($barang,true)."</pre>"; ?> Output: Fetch Obj stdClass Object ( [id] => 1 [tipe] => Chitato [kategori] => Snack [harga] => 7000 ) Fetch Assoc Array ( [id] => 2 [tipe] => Mr. P [kategori] => Snack [harga] => 4500 ) Fetch Num Array ( [0] => 3 [1] => Silver Queen Chunky Bar [2] => Snack [3] => 9000 ) Fetch Both Array ( [id] => 4 [0] => 4 [tipe] => Sprite [1] => Sprite [kategori] => Minuman [2] => Minuman [harga] => 7500 [3] => 7500 ) Selain mengambil nilai satu-persatu seperti di atas, kita juga dapat mengambil seluruh baris data secara sekaligus ke dalam array dengan <?php include "sambung.php"; $kat = $db->quote("Snack"); $sth = $db->query("SELECT * FROM barang WHERE kategori=$kat"); $barangs = $sth->fetchAll(); echo "<pre>".print_r($barangs,true)."</pre>"; ?> Output: Array ( [0] => stdClass Object ( [id] => 1 [tipe] => Chitato [kategori] => Snack [harga] => 7000 ) [1] => stdClass Object ( [id] => 2 [tipe] => Mr. P [kategori] => Snack [harga] => 4500 ) [2] => stdClass Object ( [id] => 3 [tipe] => Silver Queen Chunky Bar [kategori] => Snack [harga] => 9000 ) ) Sama seperti method Memanggil data dengan PDOStatement::executeSama seperti mengeksekusi perintah SQL, mengambil data melalui PDO juga dapat dilakukan dengan prepared statement. Untuk penjelasan lebih lengkap mengenai prepared statement, dapat membaca topik sebelumnya. <?php include "sambung.php"; $sth = $db->prepare("SELECT * FROM barang WHERE kategori=?"); $sth->execute(["Minuman"]); $barangs = $sth->fetchAll(); echo "<pre>".print_r($barangs,true)."</pre>"; ?> Output: Array ( [0] => stdClass Object ( [id] => 4 [tipe] => Sprite [kategori] => Minuman [harga] => 7500 ) [1] => stdClass Object ( [id] => 5 [tipe] => Fanta [kategori] => Minuman [harga] => 7500 ) [2] => stdClass Object ( [id] => 6 [tipe] => Coca Cola [kategori] => Minuman [harga] => 7500 ) ) Seperti telah dijelaskan pada topik sebelumnya. Jika kita menggunakan prepared statement, tidak perlu khawatir akan SQL Injection. Tentunya kita juga dapat menghindari SQL Injection dengan gabungan Apa fungsi PDO?PDO bertujuan untuk membuat satu buah interface yang seragam untuk koneksi ke beragam jenis database. Ketika Anda menggunakan database yang didukung oleh PDO seperti misalnya MySQL, Oracle, MS.
Apa yang dimaksud dengan PDO?"PDO - PHP Data Objects - adalah lapisan akses database yang menyediakan metode akses yang seragam ke beberapa database." Ini tidak memperhitungkan sintaks database-spesifik, namun memungkinkan proses peralihan database dan platform menjadi lebih mudah, cukup dengan mengganti string koneksi dalam banyak instance.
Apa perbedaan sql MySQL dan MySQLi?Perbedaan MySQL dan MySQLi adalah tipe dukungan yang disediakan. Jika MySQL hanya mendukung MySQL server sampai di versi 4.1.3, MySQLi dapat dipakai sampai dengan versi paling baru. Fiturnya pun lebih banyak bisa dipakai ketika menggunakan MySQLi dibandingkan menggunakan MySQL.
|