Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
2015-12-21 Robby Cokro Buwono Badiyanto, S.Kom,. M.Kom Sesi 13 - 14 Akses data Kode MK : AK2011T Revisi Terakhir : 2013 Tujuan Intruksional Memahami berbagai ekstensi akses database 2 1 2015-12-21 API PHP database MySQL Dengan PHP kita dapat terkoneksi dan memanipulasi database. MySQL adalah salah satu Database Management System yang dapat diakses oleh PHP. MySQL adalah relational database dimana terdapat kolom dan baris record 3 API PHP database MySQL Untuk dapat mengakses MySQL dengan PHP kita menggunakan API (Application Programming Interface) yang mendefinisikan kelas, metode, fungsi dan variabel yang aplikasi dan diperlukan hanya dengan memanggil untuk melaksanakan tugas yang diinginkan. 4 2 2015-12-21 API PHP database MySQL Terdapat tiga API yang dapat digunakan untuk menghubungkan dengan MySQL database server yaitu : PHP's MySQL Extension (prosedural) PHP's mysqli Extension (OOP) PHP Data Objects (PDO) (OOP) 5 PHP's MySQL Extension Perintah yang digunakan diantaranya mysql_connect - Buka koneksi ke Server MySQL mysql_close - Tutup koneksi MySQL mysql_errno - Mengembalikan nilai numerik dari pesan kesalahan dari operasi MySQL sebelumnya mysql_error - Mengembalikan teks pesan kesalahan dari operasi MySQL sebelumnya mysql_select_db - Pilih database MySQL mysql_query - Kirim query MySQL mysql_result - Dapatkan Data hasil mysql_num_rows - Dapatkan jumlah baris dalam hasil mysql_fetch_array - Ambil hasil baris sebagai array asosiatif, array numerik, atau keduanya mysql_fetch_assoc - Ambil hasil baris sebagai array asosiatif 6 3 2015-12-21 PHP's MySQL Extension <?php $koneksi = mysql_connect('localhost', 'root', ''); if (!$koneksi) { die('Tidak dapat konek: ' . mysql_error()); } echo 'Koneksi berhasil'; $db = mysql_select_db('barang', $koneksi); if (!$db) { die ('Tidak menggunakan database barang : ' . mysql_error()); } $result = mysql_query('SELECT * FROM barang'); if (!$result) { die('Query tidak valid: ' . mysql_error()); } echo "<table border='1'>" ; echo "<tr>" ; echo "<td>Kode</td>" ; 7 PHP's MySQL Extension echo "<td>Nama Barang</td>" ; echo "<td>Harga</td>" ; echo "<td>Jumlah</td>" ; echo "<td>Satuan</td>" ; echo "</tr>" ; while($rows = mysql_fetch_assoc($result)){ echo "<tr>" ; echo "<td>".$rows["kode_barang"]."</td>" ; echo "<td>".$rows["nama_barang"]."</td>" ; echo "<td>".$rows["harga_barang"]."</td>" ; echo "<td>".$rows["jumlah_barang"]."</td>" ; echo "<td>".$rows["satuan"]."</td>" ; echo "</tr>" ; } echo "</table>" ; echo "Jumlah Record ".mysql_num_rows($result) ; mysql_close($koneksi); ?> 8 4 2015-12-21 PHP's mysqli Extension mysqli :: __ construct - Buka koneksi baru ke server MySQL mysqli :: close - Menutup koneksi database dibuka sebelumnya mysqli :: comit - Komit transaksi saat mysqli :: $connect_errno - Mengembalikan kode kesalahan dari panggilan koneksi sebelumnya mysqli :: $connect_error - Mengembalikan deskripsi string kesalahan koneksi terakhir mysqli :: $errno - Mengembalikan kode kesalahan untuk pemanggilan fungsi terbaru mysqli :: $error - Mengembalikan deskripsi string dari kesalahan terakhir mysqli :: query- Melakukan query pada database mysqli :: rollback - Rolls back transaksi berjalan mysqli :: select_db - Memilih database default untuk database queries mysqli :: begin_transaction - Mulai transaksi mysqli :: query - Melakukan query pada database mysqli_result :: fetch_array - Ambil hasil baris sebagai asosiatif, array numerik, atau keduanya mysqli_result :: fetch_assoc - Ambil hasil baris sebagai array asosiatif mysqli_result :: $NUM_ROWS - Mendapatkan jumlah baris dalam hasil 9 PHP's mysqli Extension <?php $mysqli = new mysqli('localhost', 'root', '', 'barang'); if ($mysqli->connect_error) { die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error); } echo 'Success... ' . $mysqli->host_info . "\n"; $query = "SELECT * FROM barang" ; if ($result = $mysqli->query($query)) { echo "<table border='1'>" ; echo "<tr>" ; echo "<td>Kode</td>" ; echo "<td>Nama Barang</td>" ; echo "<td>Harga</td>" ; echo "<td>Jumlah</td>" ; echo "<td>Satuan</td>" ; 10 5 2015-12-21 PHP's mysqli Extension echo "</tr>" ; while ($rows = $result->fetch_assoc()) { echo "<tr>" ; echo "<td>".$rows["kode_barang"]."</td>" ; echo "<td>".$rows["nama_barang"]."</td>" ; echo "<td>".$rows["harga_barang"]."</td>" ; echo "<td>".$rows["jumlah_barang"]."</td>" ; echo "<td>".$rows["satuan"]."</td>" ; echo "</tr>" ; } echo "</table>" ; $result->free(); } $mysqli->close(); ?> 11 Apa PDO PDO?? PDO adalah singkatan dari PHP Data Objects. PDO adalah cara ramping yang konsisten untuk mengakses database. pengembang dapat menulis kode portabel jauh lebih mudah PDO bukan lapisan abstraksi seperti PearDB Lapisan akses data yang menggunakan API (Application Programming Interface / Antarmuka Pemrograman Aplikasi) terpadu. 12 6 2015-12-21 Koneksi ke MySQL $db = new PDO( 'mysql:host=localhost; dbname=testdb; charset=utf8', 'username', 'password'); 13 Membaca Data Method fetch() contoh : $stmt = $db->query('SELECT * FROM table'); while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo $row['field1'].' '. $row['field2']; //etc... } 14 7 2015-12-21 Baca Data Method fetchAll() $stmt = $db->query('SELECT * FROM table'); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach($results as $hasil) { //echo $hasil[0]; } 15 Membaca Data Method rowCount() contoh: $stmt = $db->query('SELECT * FROM mhs'); $row_count = $stmt->rowCount(); 16 8 2015-12-21 INSERT, UPDATE, DELETE method exec() $affected_rows = $db->exec("UPDATE table SET no=‘0001‘, nama=‘Agung’"); echo $affected_rows.' were affected’; 17 Manghindari SQL Injek Prepared Statement contoh: $stmt = $db->prepare("SELECT * FROM table WHERE id=:id AND name=:name"); $stmt->execute(array(':name' => $name, ':id' => $id)); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); 18 9 2015-12-21 INSERT contoh: $stmt = $db->prepare("INSERT INTO mhs(nim,nama,alamat) VALUES(:nim,:nama,:alamat)"); $stmt->execute(array(':nim=>’01212’, ‘:nama’=>’Agus’, ’:alamat’=>’Solo’)); $affected_rows = $stmt->rowCount(); 19 UPDATE contoh: $stmt = $db->prepare("UPDATE mhs SET nama=: nama WHERE id=:id"); $stmt->execute(array(':nama' => $nama ':id' => $id); $affected_rows = $stmt->rowCount(); 20 10 2015-12-21 DELETE contoh : $stmt = $db->prepare("DELETE FROM mhs WHERE id=:id"); $stmt->execute(array(':id' => $id)); $affected_rows = $stmt->rowCount(); 21 PHP Data Objects (PDO) PDO :: beginTransaction - Memulai transaksi PDO :: comit - Komit transaksi PDO :: __ construct - Membuat PDO mewakili koneksi ke database PDO :: errorcode – mengambil SQLSTATE terkait dengan operasi terakhir pada koneksi basis data PDO :: errorInfo - Ambil informasi kesalahan terkait dengan operasi terakhir pada koneksi basis data PDO :: execute - Jalankan pernyataan SQL dan mengembalikan jumlah baris yang terkena PDO :: query- Menjalankan pernyataan SQL, mengembalikan hasil set sebagai objek PDOStatement PDO :: rollBack - Rolls back transaksi 22 11 2015-12-21 PHP Data Objects (PDO) <?php $dsn = 'mysql:dbname=barang;host=127.0.0.1'; $user = 'root'; $password = ''; try { $koneksi = new PDO($dsn, $user, $password); echo 'Koneksi Berhasil' ; } catch (PDOException $e) { echo 'Koneksi Gagal: ' . $e->getMessage(); } $sql = 'SELECT * FROM barang'; echo "<table border='1'>" ; echo "<tr>" ; echo "<td>Kode</td>" ; 23 PHP Data Objects (PDO) echo "<td>Nama Barang</td>" ; echo "<td>Harga</td>" ; echo "<td>Jumlah</td>" ; echo "<td>Satuan</td>" ; echo "</tr>" ; foreach ($koneksi->query($sql) as $rows) { echo "<tr>" ; echo "<td>".$rows["kode_barang"]."</td>" ; echo "<td>".$rows["nama_barang"]."</td>" ; echo "<td>".$rows["harga_barang"]."</td>" ; echo "<td>".$rows["jumlah_barang"]."</td>" ; echo "<td>".$rows["satuan"]."</td>" ; echo "</tr>" ; } echo "</table>" ; ?> 24 12 2015-12-21 Referensi PHP Manual (http://www.php.net/docs.php) 25 13