PHP – Accessing MySQL Database

advertisement
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
Download