1
Perancangan dan
Pemrograman Web
PHP – Accessing MySQL
Database
Oleh: Chaerul Anwar, MTI
2
Koneksi Database
▫ PHP – MySql installed
▫ MySql telah running (cek xampp control
panel)
▫ Database
▫ Tabel
▫ Query SQL (Structured Query Language)
▫ Script PHP untuk pengolahan database
▫ Output (HTML)
Koneksi Database
• Berikut Langkah-langkah untuk Koneksi
Database menggunakan PHP
1. Koneksi ke server Database
2. Memilih database
3. Membuat perintah SQL (sql command)
4. Eksekusi command / perintah
5. Mengakses hasil eksekusi perintah
6. Melihat hasil output
7. Menutup sambungan
Contoh implementasi
• Form login
Login user dicocokan dengan data input dari
user
• Form Input Data
Input Data dari User
• List tabel
Menampilkan data dalam sebuah tabel misalkan
data keuangan , list nilai dan sebagainya
• Detail data
Shoping cart
6
MYSQL
SQL
SQL (Structured Query Language) adalah bahasa yang
khusus digunakan untuk mengoperasikan database.
Untuk memudahkan, SQL query dapat dikelompokkan
menjadi tiga jenis :
Query untuk mengelola data
Query untuk mengakses data dalam 1 tabel
Query untuk mengakses data lebih dari 1 tabel
SQL Manager : Software yang digunakan untuk
mengolah database dalam server
PHPMyAdmin
SQLyog
EMS
Query u/ Mengelola Database
• Yang termasuk dalam kelompok query ini
adalah :
▫ Membuat database
▫ Menghapus database
▫ Membuat tabel
▫ Memodifikasi tabel
▫ Menghapus tabel
▫ Menambah user (user database)
▫ Mengatur permission (user database)
▫ Menghapus user (user database)
Query u/ Mengelola Database (cont.)
Membuat database
CREATE DATABASE <nama database>
Menghapus database
DROP DATABASE
Membuat tabel
CREATE TABLE userTable(
UserId INT (3),
UserName VARCHAR (50),
Password VARCHAR (50),
NamaLengkap VARCHAR (50)
);
Menghapus tabel
DROP TABLE <nama tabel>;
Query u/ 1 Tabel
Query satu tabel digunakan untuk mengelola
data dalam satu tabel
Beberapa perintah yang dapat digunakan :
Fungsi Query
Input data INSERT
Modifikasi data UPDATE
Mengambil data SELECT
Menghapus data DELETE
Menghitung banyaknya data COUNT
Menjumlah data SUM
Menghitung rata-rata AVG
dll
Query u/ 1 Tabel (cont.)
SQL INSERT
INSERT INTO userTable VALUES (
1,
'upeje',
'upj123',
‘Sistem Informasi UPJ'
);
SQL SELECT
SELECT *
FROM UserTable
WHERE UserId=1;
SQL UPDATE
UPDATE userTable
SET password=’test’
WHERE UserName=’upeje’;
SQL DELETE
DELETE FROM UserTable
WHERE UserName=‘upeje’
12
Membuat
Latihan database
CREATE DATABASE <nama database>
• Buat table: Biodata Menghapus
UserId INT (3),
database
NamaLengkap VARCHAR (50) DROP DATABASE
TglLahir DATE Membuat tabel
Alamat VARCHAR (50) CREATE TABLE userTable(
UserId INT (3),
AsalSMA VARCHAR (50) UserName VARCHAR (50),
Password VARCHAR (50),
JurusanSMA VARCHAR (50) NamaLengkap VARCHAR (50)
);
Menghapus tabel
==== DROP TABLE <nama tabel>;
Isi 5 data table : Biodata
Dan 3 data table UserTable
Query u/ Banyak Tabel
Kelompok Query ini digunakan untuk
mengambil data dari lebih dari 1 tabel
menggunakan JOIN.
SELECT * FROM
UserTable JOIN Biodata
ON UserTabel.UserId = Biodata.UserId
14
Koneksi PHP
15
Koneksi PHP - MySQL
• Untuk melakukan koneksi PHP dengan
MySQL digunakan perintah:
mysql_connect() -> skrip PHP.
• Syntak:
mysql_connect(“hostname”,”username”,”
password”);
16
Koneksi PHP - MySQL
• Setelah terkoneksi, pilihlah database.
• Bila database yang diinginkan belum
tersedia, buatlah databasenya.
• Buatlah tabel, dengan struktur datanya.
Membuat Koneksi dengan
Database
$dbServer = "localhost";
$dbUser = "root";
$dbPass = “pass"; //isi dgn password
$dbConn = mysql_connect($dbServer,
$dbUser, $dbPass);
Variabel $dbConn akan berisi “resource”
koneksi yang sedang aktif setelah
dilakukan connect
Memilih database
$dbName = "mydata";
mysql_select_db($dbName);
Membentuk perintah SQL untuk
Pengolahan Data
Perintah (SQL) ditamping dalam sebuah
variabel String
$query =
"INSERT INTO userTable VALUES (
1,
‘username',
‘password',
‘Username testing'
)”;
Eksekusi Perintah (SQL)
Setelah menyusun SQL dalam String,
dilakukan eksekusi perintah SQL :
$hasil = mysql_query($query);
if($hasil){
echo(mysql_affected_rows()."
orang ditambahkan ke dalam
sistem");
}
Mengakses Hasil Query
Mengetahui jumlah data hasil query :
$jumlahHasil = mysql_num_rows($hasil);
Mengambil data hasil query :
$data = mysql_fetch_array($hasil);
Perintah tsb akan mengambil data (1 baris data)
dan akan mengembalikan false jika baris telah
habis, maka untuk mengambil seluruh data
digunakan looping :
while($row = mysql_fetch_array($result)){
//perintah yang dilakukan
$datas[] = $row;
}
Mengambil data dalam bentuk array :
$passDb = $data[“Password”];
Output
• Nilai kembalian dari mysql _fetch_array
adalah berupa array (1 dimensi / multi
dimensi)
• Dapat digunakan kombinasi antara
looping dan array untuk membentuk
tampilan output HTML dari data.
Output (cont.)
Contoh :
<table border="1">
<tr>
<th>Nama</th>
<th>NIM</th>
<th>Jenis Kelamin</th>
</tr>
<?php foreach($mahasiswa as $item) : ?>
<tr <?php echo ($item['jenis_kelamin']=='perempuan') ?
'style="color: red;"' : "" ?>>
<td><?php echo $item['nama'] ?></td>
<td><?php echo $item['nim'] ?></td>
<td><?php echo $item['jenis_kelamin'] ?></td>
</tr>
<?php endforeach ?>
</table>
Issues
• Perhatikan kompleksitas query
▫ Semakin kompleks query yang digunakan,
semakin lama waktu eksekusi
• Perhatikan koneksi open-close
▫ Non-presistent connection mencegah beban
berlebihan di server
▫ Beban di server berbanding lurus dengan
jumlah user yang mengakses
• Perhatikan sekuritas
▫ Hindari kemungkinan sql-injection
▫ Escape characters
25
Membuat Database via PHP
<?php
//Membuat database MySQL
$nama_db = "upj";
$buat_db = "create database $nama_db";
$sambung =
mysql_connect("localhost","root",“password"); //isi
dengan password anda
if($sambung){
echo "Koneksi Berhasil";}
else {
echo "Koneksi Gagal";}
$q_db = mysql_query($buat_db);
if($q_db){
echo "<br> Database $nama_db berhasil dibuat";}
else {
echo "<br> Database $nama_db gagal dibuat";}
26
Membuat Tabel MySQL
<?
//Membuat tabel MySQL
$nama_db = “upj";
$nama_tbl = “biodata";
$sambung = mysql_connect("localhost","root",“password");
if($sambung){
echo "Koneksi Berhasil";}
else {
echo "Koneksi Gagal";}
mysql_select_db($nama_db,$sambung) or die("Koneksi ke
$nama_db gagal");
$buat_tbl = "create table $nama_tbl (kode char(5) not null, nama
varchar(40) not null, alamat varchar(40) )";
$qtbl = mysql_query($buat_tbl,$sambung);
if($qtbl){
echo "<br>Tabel$nama_tbl berhasil dibuat";}
else {
echo "<br>Tabel $nama_tbl gagal dibuat";}
?>
27
FORM input
• Membuat Form sebagai input pada sistem
database.
• Input disimpan dalam satu tabel tertentu.
• Pada attribut action ditentukan file yang
memiliki skrip PHP untuk menyimpan
input ke tabel pada database.
28
FORM-Input Database
<html>
<head>
<title>Formulir Input Biodata</title>
<meta author=UPJ>
</head>
<body>
<h1>Masukkan Data Biodata</h1>
<form method=post action=simpan.php>
<table>
<tr>
<td>Kode</td>
<td><input type=text name=kode size=20></td>
</tr>
<tr>
<td>Negara</td>
<td><input type=text name=nama size=30></td>
</tr>
29
Form Input Database
<tr>
<td>Champion</td>
<td><input type=text name=alamat size=30></td>
</tr>
<tr>
<td align=center><input type=submit name=submit
value=Simpan></td>
<td align=center><input type=reset name=reset value=Ulangi></td>
</tr>
</table>
</form>
</body>
</html>
30
Koneksi PHP - MySQL
• Untuk menyimpan input ke tabel MySQL,
terlebih dahulu input dibaca sesuai
metode yang digunakan.
• Untuk menyimpan ke database digunakan
perintah:
$hasil = mysql_query(”SQL
Statement”);
31
Koneksi PHP – MySQL
Simpandata.php
<?php
$sambung = mysql_connect("localhost","root",“password");
mysql_select_db('upj',$sambung) or die("Koneksi ke upj gagal");
?>
<html>
</head>
<body>
<h1>Biodata</h1>
<?php
$kode = $_POST['kode'];
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
?>
32
Koneksi PHP – MySQL
Simpandata.php - Lanjutan
<?php
$q_simpan = "insert into biodata
values('$kode' ,'$nama','$alamat')";
$hasil = mysql_query($q_simpan,$sambung);
if($hasil){
echo "Data tersimpan: <br>";
echo "Kode : ".$kode."<br>";
echo "Nama : ".$nama."<br>";
echo "Alamat : ".$alamat."<br>";
}else{
echo "Data gagal disimpan";}
?>
<form method=post action=form-input.html>
<input type=submit value=Kembali>
</form>
<form method=post action=table.php>
<input type=submit value="Lihat Data">
</form>
</body>
</html>
33
Koneksi PHP - MySQL
Menampilkan data bentuk 34
table
<?php
$sambung = mysql_connect("localhost","root",“password");
mysql_select_db('upj',$sambung) or die("Koneksi ke upj gagal");
$tampil = "select * from biodata";
$q_buat = mysql_query($tampil,$sambung);
?>
<h1>Tabel Biodata</h1>
<table border=1>
<tr>
<td>Kode</td>
<td>Nama</td>
<td>Alamat</td>
</tr>
<?php
while($row = mysql_fetch_row($q_buat)){
echo ("<tr align=center><td>$row[0]</td>");
echo ("<td>$row[1]</td>");
echo ("<td>$row[2]</td></tr>");
}
?>
</table>
<html>
<form method=post action=form-input.html><input type=submit
value=Tambah name=tambah></form>
</html>
Menampilkan data bentuk 35
table
36
Koneksi PHP - MySQL
Form Pencarian
• Buat Input dengan type radio untuk
memilih field pencarian.
• Buat Input dengan type text sebagai kata
kunci pencarian.
• Buat tombol Cari, Input -> type Submit
37
Koneksi PHP - MySQL
<HTML>
<HEAD>
<title>Cari Database</title>
</HEAD>
<BODY>
<h1>Searching Biodata</h1>
<form action="hasilsearch.php" method="post">
<select name="kolom">
<option value="kode">Kode</option>
<option value="Nama">Nama</option>
</select>
Masukkan kata yang anda cari
<input type ="text" type ="text" name="cari">
<input type ="submit" value="cari" >
</form>
</BODY>
</HTML>
38
Koneksi PHP - MySQL
39
Koneksi PHP - MySQL
<?php
$kolom=$_POST['kolom'];
$cari=$_POST['cari'];
$conn=mysql_connect("localhost","root",“password");
mysql_select_db("upj", $conn);
$hasil=mysql_query("select * from biodata where $kolom like '%$cari%'",
$conn);
if ($hasil==false)
{
die(mysql_error());
}
$jumlah=mysql_num_rows($hasil);
echo "<br>";
echo "Ditemukan: $jumlah";
echo "<br>";
while($baris=mysql_fetch_array($hasil))
{
echo "Kode : ";
echo $baris[0];
echo "<br>";
echo "Nama : ";
echo $baris[1];
echo "<br>";
echo "Alamat :";
echo $baris[2];
}
40
Koneksi PHP - MySQL
41
Sekian - Terima Kasih