PHP – Accessing MySQL Database Fajar Pradana S.ST., M.Eng
Requirements
PHP – MySql installed MySql telah running (cek xampp control panel) Database Tabel Query SQL (Structured Query Language) Script PHP untuk pengolahan database Output (HTML)
Steps
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
Contoh implementasi
Form login
List tabel
Menampilkan data dalam sebuah tabel (mis: tabel daftar mahasiswa)
Detail data
Pengambilan data login user di database dan mencocokan dengan data input dari user
Menampilkan data detail dari sebuah tabel (mis: detail biodata mahasiswa berdasarkan NIM tertentu)
dll
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
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 ;
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, ‘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’
Query u/ Banyak Tabel
Kelompok Query ini digunakan untuk mengambil data dari lebih dari 1 tabel menggunakan JOIN.
SELECT * FROM UserTabel JOIN Biodata ON UserTabel.idUser = Biodata.idUser
1. 2.
3. 4. 5. 6.
11
Koneksi ke MySQL Memilih Database Akses ke Table Akses Record dan Field Memposisikan record Insert dan Delete record
1. Koneksi ke mySQL
Sebelum melakukan ases ke database mySQL pekerjaan pertama adalah melakukan koneksi ke database Perintah untuk melakukan koneksi adalah : mysql_connect(host,nama_pemakai,password) Perintah untuk menutup koneksi : mysql_close(pengenal_hubungan);
HASIL PROGRAM
Jika koneksi gagal Statement ini akan muncul 12
2. Memilih Database
Jika connect ke database berhasil, perlu memilih database Perintah untuk memilih database: mysql_select_db(data_base,pengenal_hubungan) dimana : data_base = nama database pengenal_hubungan = nama pengenal yang digunakan dalam koneksi
Jika select database gagal kalimat ini tidak muncul 13
3. Akses ke table
Dimisalkan telah dibuat table bernama :Tabel1 dalam database bernama coba
Table yang bernama Tabel1 memiliki struktur sbb:
nama varchar (20) umur int(2)
Adapun data-datanya adalah: Sarjono
35
Budiman
18
Joko Waluyo
21
Bambang Sudiyono
28
Berikut tampilan struktur tabel dan data dari phpMySql 14
STRUKTUR TABEL
akses ke Tabel …
Membuat query : mysql_query(query,h andle) Mengatahui jumlah field: mysql_num_fields (handle) Mengatahui jumlah record: mysql_num_rows (handle) HASIL PROGRAM 15
Akses tabel
Untuk mengakses record hasil query: $baris=mysql_fetch_row(handle) akan mengembalikan array yang berisi seluruh kolom $baris[0], $baris[1],…
Hasil PROGRAM
16
4. Akses field dengan mysql_fetch_field Untuk mengakses field digunakan : mysql_fetch_field(handle, nomorkolom) Objek hasil fetch dapat diases a.l. : ->name = nama field ->max_length = lebar field
HASIL
17
akses field dengan mysql_field_ …
18
Cara lain ases field adalah (nomor field : 0,1,2..) mysql_field_name(h andle,kolom) : nama field ke-(kolom+1) mysql_field_len(han dle,kolom) :lebar field ke-(kolom+1) mysql_field_type(ha ndle,kolom) : tipe field ke-(kolom+1)
Akses Table Menampilkan Foto Sebelumnya dibuat table Biodata dalam database coba yang berisi 2 field: nama dan Foto (untuk field foto berisi nama file dan folder foto). Siapkan foto sesuai nama fotonya STRUKTUR TABEL NYA : Tabel Biodata
ISI DATA-DATA NYA JIKA DI BROWSE di phpMyAdmin
19
Akses Table Menampilkan Foto Script Lengkapnya adalah …
20
Daftar Table dalam database Untuk mengetahui tabel-tabel dalam database : mysql_list_tables(namaDataBase)
CONTOH PROGRAM
Database : coba
Hasilnya : Jumlah tabel :2
21
5. Memposisikan record dengan seek
Memposisikan pointer pada record tertentu : mysql_data_seek(handl e,posisi)
Posisi =posisi record, dimulai dari 0 untuk record pertama CONTOH: Database : Coba Tabelnya : tabel1
Posisikan ke record ke - 4
22
Hasilnya :
6. Menginsert dan menghapus record
Perintah SQL untuk menginsert record : INSERT INTO `namatabel` (`namafield1’, `namafield2`,..) VALUES (‘nilaifeild1', ‘nilaifield2‘,..)"; Contoh: INSERT INTO `tabel1` (`nama`, `umur`) VALUES ('Andi', '15')";
HASIL 3 KALI
23
setelah dijalankan 10 kali Jika program insertRecord.php di eksekusi 10 kali, hasilnya …
24
menghapus record
Perintah SQL untuk menghapus record : DELETE FROM `namatabel` WHERE ‘namafield’=‘nilaifeild1‘ AND ‘namafield’=‘nilai’ OR …; Contoh: DELETE FROM `tabel1` WHERE `nama`=‘Andi’ menghapus semua record jika nama=‘Andi’
Setelah program dijalankan
25
Rangkuman
PHP dapat mengakses database mySQL dan mengakses tabel, record, field dan fungsi-fungsi manipulasi data Cara mengakses dengan mendefinisikan fungsi-fungsi mysql dalam bentuk perintah SQL Urutan pengakksesan PHP : membuat koneksi, memilih database dan memilih tabel Pada tabel yang terpilih manipulasi record seperti menginsetkan, menghapus, mengubah data dan seterusnya dilakukan
26
27