Pemrograman WEB
Pertemuan 6
Ir. I Putu Arie Pratama, S.T., M.T.
Langkah dalam Pengolahan Data
dari MySQL Menggunakan PHP
1. Membuat Koneksi Database
2. Membuat instruksi pengolah data dari tabel.
– Query akses data di tabel dan menyajikannya, dengan
menggunakan:
• $mysqli->query(“query”);
atau
• $mysqli->prepare(“query");
– Query lain juga dapat dijalankan yaitu Insert/Update/Delete
data
Persiapan
• Buat sebuah database untuk latihan, contoh dengan nama
“latihanpemweb6“
• Buat sebuah tabel untuk latihan, contoh: tabel
“mahasiswa”
Koneksi ke DB Secara Object Oriented
Note:
Membuat object $DB 1. Pastikan MySQL anda
Server DB
sudah aktif (contoh:
password
dari class mysqli
Nama DB
User ID
jalankan di XAMPP)
2. Pastikan anda sudah
mengetahui user dan
password MySQL
<?php
$DB= new mysqli("localhost", "user", "password", "database");
if(mysqli_connect_errno()) {
echo("gagal koneksi, pesan kesalahan:" . mysqli_connect_error());
exit();
}
?>
Menjalankan Query
Query Akses Data di Tabel dengan
$mysqli->query(“query”);
• Untuk melakukan akses data di tabel bisa
digunakan method query(), sehingga
instruksinya:
$variable = $DB->query(“instruksi_query_select”);
Query Akses Data di Tabel dengan
$mysqli->query(“query”);
record set hasil query
Variable penampung
merupakan instant
Method query()
dari class mysqli
Object DB yang
Method fetch_object() , untuk
mengambil satu baris data
<?php
$hasilQuery = $DB->query("select * from mahasiswa");
while($data = $hasilQuery->fetch_object()) {
echo($data->nim . " | " . $data->nama . " | " . $data->kodeJurusan . " \n");
}
?>
Variabel penampung Menampilkan data dari
satu baris data field sesuai nama field
Query Akses Data di Tabel dengan
$mysqli->query(“query”);
<?php
/*koneksi ke database*/
$DB = new mysqli("localhost", "user", "password", "database");
if(mysqli_connect_errno()) {
echo("gagal koneksi, pesan kesalahan:" . mysqli_connect_error());
exit();
}
/*query akses data di tabel*/
$hasilQuery = $DB->query("select * from mahasiswa");
while($data=$hasilQuery->fetch_object()) {
echo($data->nim . " | " . $data->nama . " | " . $data->kodeJurusan . "
<br/>");
}
?>
Query Insert Data di Tabel dengan
$mysqli->query(“query”);
<?php
/*koneksi ke database*/
$DB = new mysqli("localhost", "user", "password", "database");
if(mysqli_connect_errno()) {
echo("gagal koneksi, pesan kesalahan:" . mysqli_connect_error());
exit();
}
/*data yang akan disimpan ke tabel*/
$nim = "003";
$nm = "Mahasiswa C";
$kdjur = "SK001";
//query insert statement dan periksa apakah insert berhasil*/
if($DB->query("insert into mahasiswa values ('$nim', '$nm', '$kdjur');")) {
echo "Data berhasil disimpan";
}
else {
echo "Error: insert into mahasiswa" . "<br>" . $DB->error;
}
$statement->close();
?>
Query Akses Data di Tabel dengan
$mysqli->prepare(“query”);
• Untuk melakukan akses data di tabel bisa
digunakan method prepare(), sehingga
instruksinya:
$variable = $mysqli->prepare(“instruksi_query_select ");
• Method prepare() berisi query yang disiapkan
(pre-compiled) oleh MySQL server, dan bisa
dijalankan belakangan
Query Akses Data di Tabel dengan
$mysqli->prepare(“query”);
• Kelebihan melakukan akses data dengan menggunakan method prepare():
– Better Performance
– Prevention of SQL injection (karena dapat menggunakan bind parameter)
– Saving memory while handling blobs
• Kelemahan method prepare():
– There is no performance boost if you use prepared statements for a single call.
– There is no query cache for using prepared statements.
– Chance of memory leak if statements are not closed explicitly.
– Not all statements can be used as a prepared statement.
Query Akses Data di Tabel dengan
$mysqli->prepare(“query”);
(penampung) prepare
Variable representasi
merupakan instant
Method prepare()
dari class mysqli
Object DB yang
Mengaitkan data hasil
execute ke variabel
$statement = $DB->prepare("select nim, nama from mahasiswa");
$statement->execute();
$statement->bind_result($nim, $nama);
while ($statement->fetch()) {
echo $nim . " " . $nama . "<br/>";
}
Method fetch() , untuk mengambil
satu baris data
Menampilkan data dari
field kodeJurusan
Query Akses Data di Tabel dengan
$mysqli->prepare(“query”);
<?php
/*koneksi ke database*/
$mysqli = new mysqli("localhost", "user", "password", "database");
if(mysqli_connect_errno()) {
echo("gagal koneksi, pesan kesalahan:" . mysqli_connect_error());
exit();
}
$statement = $mysqli->prepare("select nim, nama from mahasiswa");
$statement->execute();
$statement->bind_result($nim, $nama);
while ($statement->fetch()) {
echo $nim . "<br/>";
}
?>
Query Insert Data di Tabel dengan
$mysqli->prepare(“query”);
<?php
/*koneksi ke database*/
$mysqli = new mysqli("localhost", "user", "password", "database");
if(mysqli_connect_errno()) {
echo("gagal koneksi, pesan kesalahan:" . mysqli_connect_error());
exit();
}
/*query akses data di tabel*/
$statement = $mysqli->prepare("insert into mahasiswa values (?, ?, ?)");
$nim = "004";
$nm = "Mahasiswa D";
$kdjur = "SK002";
$statement->bind_param("sss",$nim, $nm, $kdjur);
s = string , i = integer, d = double, b = BLOB
//eksekusi statement dan periksa apakah eksekusi berhasil
if($statement->execute()) { Jumlah karakter ditulis sesuai jumlah variabel
echo "Data berhasil disimpan"; Contoh: sss untuk $nim, $nm dan $kdjur
}
else {
die('execute() failed: ' . htmlspecialchars($statement->error));
}
$statement->close();
?>
Tugas
• Buatlah tabel user dengan field username, nama dan
password
• Buatlah 2 file PHP yang berisi operasi database yaitu
select dan insert pada tabel user tersebut.
Tugas dikumpulkan pada pertemuan berikutnya.
Terima Kasih