Download Sesi 13

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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