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 " ;
echo "
" ; echo "Kode | " ; 7
PHP's MySQL Extension echo "Nama Barang | " ; echo "Harga | " ; echo "Jumlah | " ; echo "Satuan | " ; echo "
" ; while($rows = mysql_fetch_assoc($result)){ echo "
" ; echo "".$rows["kode_barang"]." | " ; echo "".$rows["nama_barang"]." | " ; echo "".$rows["harga_barang"]." | " ; echo "".$rows["jumlah_barang"]." | " ; echo "".$rows["satuan"]." | " ; echo "
" ; } echo "" ; 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 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 "
" ; echo "" ; echo "Kode | " ; echo "Nama Barang | " ; echo "Harga | " ; echo "Jumlah | " ;
echo "Satuan | " ;
10
5
2015-12-21
PHP's mysqli Extension echo "
" ; while ($rows = $result->fetch_assoc()) { echo "" ; echo "".$rows["kode_barang"]." | " ; echo "".$rows["nama_barang"]." | " ; echo "".$rows["harga_barang"]." | " ; echo "".$rows["jumlah_barang"]." | " ; echo "".$rows["satuan"]." | " ; echo "
" ; } echo "
" ; $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) getMessage(); } $sql = 'SELECT * FROM barang'; echo "
" ; echo "" ; echo "Kode | " ; 23
PHP Data Objects (PDO) echo "Nama Barang | " ; echo "Harga | " ; echo "Jumlah | " ; echo "Satuan | " ; echo "
" ; foreach ($koneksi->query($sql) as $rows) { echo "" ; echo "".$rows["kode_barang"]." | " ; echo "".$rows["nama_barang"]." | " ; echo "".$rows["harga_barang"]." | " ; echo "".$rows["jumlah_barang"]." | " ; echo "".$rows["satuan"]." | " ; echo "
" ; } echo "
" ; ?> 24
12
2015-12-21
Referensi
PHP Manual (http://www.php.net/docs.php)
25
13