Perancangan dan Pemrograman Web PHP – Accessing MySQL Database Oleh: Chaerul Anwar, MTI
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 Koneksi ke server Database Memilih database Membuat perintah SQL (sql command) Eksekusi command / perintah Mengakses hasil eksekusi perintah Melihat hasil output 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
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 SQL SELECT SQL UPDATE SQL DELETE 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’
Latihan Membuat database Menghapus database Membuat tabel 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>; Buat table: Biodata UserId INT (3), NamaLengkap VARCHAR (50) TglLahir DATE Alamat VARCHAR (50) AsalSMA VARCHAR (50) JurusanSMA VARCHAR (50) ==== 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
Koneksi PHP
Koneksi PHP - MySQL Untuk melakukan koneksi PHP dengan MySQL digunakan perintah: mysql_connect() -> skrip PHP. Syntak: mysql_connect(“hostname”,”username”,”passw ord”);
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> <?php endforeach ?> </table>
Issues Perhatikan kompleksitas query Perhatikan koneksi open-close 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
Membuat Database via 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";} echo "<br> Database $nama_db gagal dibuat";} ?>
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";} echo "<br>Tabel $nama_tbl gagal dibuat";} ?>
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.
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> <td>Negara</td> <td><input type=text name=nama size=30></td>
Form Input Database <tr> <td>Champion</td> <td><input type=text name=alamat size=30></td> </tr> <td align=center><input type=submit name=submit value=Simpan></td> <td align=center><input type=reset name=reset value=Ulangi></td> </table> </form> </body> </html>
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”);
Koneksi PHP – MySQL Simpandata.php $sambung = mysql_connect("localhost","root",“password"); mysql_select_db('upj',$sambung) or die("Koneksi ke upj gagal"); ?> <html> </head> <body> <h1>Biodata</h1> $kode = $_POST['kode']; $nama = $_POST['nama']; $alamat = $_POST['alamat'];
Koneksi PHP – MySQL Simpandata.php - Lanjutan $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"> </body> </html>
Koneksi PHP - MySQL
Menampilkan data bentuk 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> 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 table
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
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>
Koneksi PHP - MySQL
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"; while($baris=mysql_fetch_array($hasil)) echo "Kode : "; echo $baris[0]; echo "Nama : "; echo $baris[1]; echo "Alamat :"; echo $baris[2]; ?>
Koneksi PHP - MySQL
Sekian - Terima Kasih