• Tidak ada hasil yang ditemukan

Sesi Memahami berbagai ekstensi akses database

N/A
N/A
Protected

Academic year: 2022

Membagikan "Sesi Memahami berbagai ekstensi akses database"

Copied!
13
0
0

Teks penuh

(1)

Kode MK : Revisi Terakhir :

Sesi 13 - 14

Robby Cokro Buwono Badiyanto, S.Kom,. M.Kom

Akses data

AK2011T 2013

Tujuan

Tujuan Intruksional Intruksional

 Memahami berbagai ekstensi akses

database

(2)

API PHP database MySQL 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 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.

(3)

API PHP database MySQL 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 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

(4)

PHP's MySQL Extension 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 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);

?>

(5)

PHP's mysqli Extension 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'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>" ;

(6)

PHP's mysqli Extension 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

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.

(7)

Koneksi ke MySQL Koneksi ke MySQL

$db = new PDO( 'mysql:host=localhost;

dbname=testdb;

charset=utf8', 'username', 'password');

13

Membaca Data Membaca Data

Method fetch() contoh :

$stmt = $db->query('SELECT * FROM table');

while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {

echo $row['field1'].' '.

$row['field2']; //etc...

}

(8)

Baca Data 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 Membaca Data

Method rowCount()

 contoh:

$stmt = $db->query('SELECT * FROM mhs');

$row_count = $stmt->rowCount();

(9)

INSERT, UPDATE, DELETE INSERT, UPDATE, DELETE

method exec()

$affected_rows = $db->exec("UPDATE table SET no=‘0001‘, nama=‘Agung’");

echo $affected_rows.' were affected’;

17

Manghindari

Manghindari SQL SQL Injek 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);

(10)

INSERT 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 UPDATE

 contoh:

$stmt = $db->prepare("UPDATE mhs SET nama=:

nama WHERE id=:id");

$stmt->execute(array(':nama' => $nama ':id' =>

$id);

$affected_rows = $stmt->rowCount();

(11)

DELETE 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) 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

(12)

PHP Data Objects (PDO) 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) 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>" ;

?>

(13)

Referensi Referensi

 PHP Manual (http://www.php.net/docs.php)

25

Referensi

Dokumen terkait