Minggu 5 : PHP – Accessing MySQL Database
Download
Report
Transcript Minggu 5 : PHP – Accessing MySQL Database
Widhy Hayuhardhika NP, S.Kom
PHP – MySql installed
MySql telah running (cek xampp control panel)
Database
Tabel
Query SQL (Structured Query Language)
Script PHP untuk pengolahan database
Output (HTML)
Langkah yang dilakukan utk mengolah database :
1.
2.
3.
4.
5.
6.
7.
Membuat Koneksi dengan Database
Memilih database
Membentuk perintah SQL untuk pengolahan data
Mengirimkan / eksekusi perintah
Mengakses hasil eksekusi perintah
Menampilkan output
Menutup sambungan
Form login
Pengambilan data login user di database dan
mencocokan dengan data input dari user
List tabel
Menampilkan data dalam sebuah tabel (mis: tabel daftar
mahasiswa)
Detail data
Menampilkan data detail dari sebuah tabel (mis: detail
biodata mahasiswa berdasarkan NIM tertentu)
dll
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
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)
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 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
SQL INSERT
INSERT INTO userTable VALUES (
1,
‘username',
‘password',
‘Username testing'
);
SQL UPDATE
UPDATE userTable
SET password=’test’
WHERE UserName=’username’
SQL SELECT
SELECT *
FROM UserTable
WHERE UserId=1
SQL DELETE
DELETE FROM UserTable
WHERE NamaLengkap=’Username Testing’
Kelompok Query ini digunakan untuk mengambil
data dari lebih dari 1 tabel menggunakan JOIN.
SELECT * FROM
UserTabel JOIN Biodata
ON UserTabel.idUser = Biodata.idUser
$dbServer = "localhost";
$dbUser = “root";
$dbPass = "";
$dbConn = mysql_connect($dbServer,
$dbUser, $dbPass);
Variabel $dbConn akan berisi “resource” koneksi
yang sedang aktif setelah dilakukan connect
$dbName = “testingDB";
mysql_select_db($dbName);
Perintah (SQL) ditamping dalam sebuah variabel
String
$query =
“INSERT INTO userTable VALUES (
1,
‘username',
‘password',
‘Username testing'
);”
Setelah menyusun SQL dalam String, dilakukan
eksekusi perintah SQL :
$hasil = mysql_query($query);
if($hasil){
echo(mysql_affected_rows()."
orang ditambahkan ke dalam
sistem");
}
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”];
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.
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>
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