BASIS DATA DI PHP ∞ MYSQL ∞ API (APPLICATION PROGRAMMING INTERFACE) ∞ IMPLEMENTASI PHP DAN MYSQL {: Zaenal Abidin :} Pemrograman Web S1 Teknik Informatika STMIK Bumigora Database Untuk PHP • Informix • DB2 • MySQL • Oracle • PostgreSQL • Sybase • DLL Pemrograman Web S1 Teknik Informatika STMIK Bumigora Pengantar MySQL merupakan server basis data yang menggunakan teknik relasional untuk menghubungkan antara tabel-tabel dalam basis data. MySQL dikeluarkan secara gratis dibawah lisensi GNU General Public License (GPL) seperti halnya PHP, sehingga tepatlah kiranya bila MySQL dijodohkan dengan PHP untuk merancang halaman web yang dinamis yang handal. MySQL juga menyediakan source programnya secara terbuka (open source) sehingga orang lain dapat mengubah atau menambah kemampuan dari MySQL untuk keperluan khusus secara pribadi. Dikarenakan kemampuannya yang handal (robust) dan didukung dengan system multi-user (banyak pemakai) dan multi-thread (beberapa prosedur dalam proses dijalankan secara bersama), maka MySQL dapatlah bersaing dengan beberapa produk server basis data commercial seperti MS Server 7, Oracle dll Pemrograman Web S1 Teknik Informatika STMIK Bumigora MySQL MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL. (http://id.wikipedia.org/wiki/MySQL) Pemrograman Web S1 Teknik Informatika STMIK Bumigora Basis Data MySQL DDL - Data Definition Language Merupakan kumpulan perintah SQL yang digunakan untuk membuat, mengubah dan menghapus struktur dan definisi metadata dari objek-objek database. DML - Data Manipulation Language Merupakan kumpulan perintah SQL yang digunakan untuk proses pengolahan isi data di dalam table seperti memasukkan, merubah dan menghapus isi data - dan tidak terkait dengan perubahan struktur dan definisi tipe data dari objek database. Pemrograman Web S1 Teknik Informatika STMIK Bumigora DDL Pembuatan (CREATE) CREATE DATABASE CREATE FUNCTION CREATE INDEX CREATE PROCEDURE CREATE TABLE CREATE TRIGGER CREATE VIEW Perubahan (ALTER & RENAME) ALTER DATABASE ALTER FUNCTION ALTER PROCEDURE ALTER TABLE ALTER VIEW RENAME TABLE Penghapusan (DROP) DROP DATABASE DROP FUNCTION DROP INDEX DROP PROCEDURE DROP TABLE DROP TRIGGER DROP VIEW Pemrograman Web S1 Teknik Informatika STMIK Bumigora DML CALL DELETE DO HANDLER INSERT LOAD DATA INFILE REPLACE SELECT TRUNCATE UPDATE Pemrograman Web S1 Teknik Informatika STMIK Bumigora Mengakses MySQL Untuk mengakses MySQL dari client menggunakan phpmyadmin dengan mengetikan “localhost/phpmyadmin” pada browser Menggunakan Comand Prompt Menggunakan GUI MySQL yang lain : MySQL Front Heidi SQL Navicat DLL Pemrograman Web S1 Teknik Informatika STMIK Bumigora API (Aplication Programming Interface) Aplication Programing Interface atau biasa disingkat API, merupakan sekumpulan perintah, fungsi dan protocol yang disediakan oleh sistem komputer atau Library program yang berfungsi untuk mensupport sebuah program berkomunikasi dengan Sistem Operasi atau hardware, sebuah sistem aplikasi. Pemrograman Web S1 Teknik Informatika STMIK Bumigora API MySQL ext / mysqli PDO_MySQL ext / mysql 5.0 5.1 2.0 Termasuk dengan PHP 5.x Ya Ya Ya Status pengembangan Aktif Aktif Pemeliharaan hanya Siklus Hidup Aktif Aktif Usang Direkomendasikan untuk proyek-proyek baru Ya Ya Tidak OOP Antarmuka Ya Ya Tidak Antarmuka prosedural Ya Tidak Ya API mendukung nonblocking, permintaan asynchronous dengan mysqlnd Ya Tidak Tidak Versi PHP diperkenalkan Pemrograman Web S1 Teknik Informatika STMIK Bumigora API MySQL Koneksi Persistent Ya Ya Ya API mendukung Karakter Ya Ya Ya API mendukung Laporan Disiapkan server-side Ya Ya Tidak API mendukung Laporan Disiapkan client-side Tidak Ya Tidak API mendukung Stored Prosedur Ya Ya Tidak API mendukung Beberapa Laporan Ya Paling Tidak API mendukung Transaksi Ya Ya Tidak Transaksi dapat dikontrol dengan SQL Ya Ya Ya Mendukung semua MySQL 5.1 + fungsi Ya Paling Tidak Pemrograman Web S1 Teknik Informatika STMIK Bumigora Fungsi API MySQL mysql_affected_rows - Dapatkan jumlah baris yang terkena dampak dalam operasi MySQL sebelumnya mysql_client_encoding - Mengembalikan nama dari set karakter mysql_close - Tutup koneksi MySQL mysql_connect - Buka koneksi ke Server MySQL mysql_create_db - Buat database MySQL mysql_data_seek - Pindahkan hasil pointer internal yang mysql_db_name - Mengambil nama database dari panggilan untuk mysql_list_dbs mysql_db_query - Memilih database dan mengeksekusi query di atasnya mysql_drop_db - Jatuhkan (menghapus) database MySQL mysql_errno - Mengembalikan nilai numerik dari pesan kesalahan dari operasi MySQL sebelumnya mysql_error - Mengembalikan teks pesan kesalahan dari operasi MySQL sebelumnya mysql_escape_string - Escapes string untuk digunakan dalam sebuah mysql_query mysql_fetch_array - Ambil hasil baris sebagai array asosiatif, array numerik, atau keduanya Pemrograman Web S1 Teknik Informatika STMIK Bumigora Fungsi API MySQL mysql_fetch_assoc - Ambil hasil baris sebagai array asosiatif mysql_fetch_field - Dapatkan informasi kolom dari hasil dan kembali sebagai obyek mysql_fetch_lengths - Dapatkan panjang setiap output hasil mysql_fetch_object - Ambil hasil baris sebagai obyek mysql_fetch_row - Dapatkan hasil baris sebagai array enumerated mysql_field_flags - Dapatkan bendera yang terkait dengan bidang yang ditentukan dalam hasil mysql_field_len - Mengembalikan panjang dari bidang tertentu mysql_field_name - Dapatkan nama field dalam hasil mysql_field_seek - Mengatur hasil pointer ke suatu field diimbangi mysql_field_table - Dapatkan nama tabel bidang tertentu dalam mysql_field_type - Dapatkan jenis bidang tertentu dalam hasil mysql_free_result - Free hasil memori mysql_get_client_info - Dapatkan info client MySQL mysql_get_host_info - Dapatkan info host MySQL Pemrograman Web S1 Teknik Informatika STMIK Bumigora Fungsi API MySQL mysql_get_proto_info - Dapatkan MySQL Info protokol mysql_get_server_info - Dapatkan MySQL server info mysql_info - Dapatkan informasi mengenai permintaan terbaru mysql_insert_id - Dapatkan ID yang dihasilkan dalam query terakhir mysql_list_dbs - Daftar database yang tersedia pada server MySQL mysql_list_fields - Daftar bidang tabel MySQL mysql_list_processes proses Daftar MySQL mysql_list_tables tabel Daftar di database MySQL mysql_num_fields - Dapatkan sejumlah bidang dalam hasil mysql_num_rows - Dapatkan jumlah baris dalam hasil Pemrograman Web S1 Teknik Informatika STMIK Bumigora Fungsi API MySQL mysql_pconnect - Buka koneksi terus-menerus ke server MySQL mysql_ping - Ping koneksi server atau menyambung kembali jika tidak ada koneksi mysql_query - Kirim query MySQL mysql_real_escape_string - Escapes karakter khusus dalam string untuk digunakan dalam pernyataan SQL mysql_result - Dapatkan data hasil mysql_select_db - Pilih database MySQL mysql_set_charset - Mengatur set karakter klien mysql_stat - Dapatkan status sistem saat ini mysql_tablename - Dapatkan nama tabel lapangan mysql_thread_id - Kembali thread ID saat ini mysql_unbuffered_query - Kirim query SQL ke MySQL tanpa mengambil dan buffering baris hasil. Pemrograman Web S1 Teknik Informatika STMIK Bumigora Cara Kerja PHP dan MySQL Koneksi Pilih Database Jalankan Query Pemrograman Web S1 Teknik Informatika STMIK Bumigora Koneksi mysql_connect ([ string $server, string $username, string $password) Fungsi ini adalah fungsi yang kita gunakan untuk melakukan koneksi dengan basis data yang ada. $server = merupakan nama server database yang dipakai, jika menggunakan komputer lokal maka ketikan varameter server itu dengan localhost $username merupakan nama user yang diberi hak akses oleh server MySQL defaultnya adalah “root” $password merupakan password yang dimiliki oleh user Pemrograman Web S1 Teknik Informatika STMIK Bumigora <?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?> Pemrograman Web S1 Teknik Informatika STMIK Bumigora Pilih Database mysql_select_db ( string $database_name , resource $link_identifier ) $database_name , nama basis data yang akan digunakan/dimanipulasi $link_identifier, merupakan link terakhir dibuka oleh fungsi mysql_connect (). Pemrograman Web S1 Teknik Informatika STMIK Bumigora <?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Not connected : ' . mysql_error()); } // make foo the current db $db_selected = mysql_select_db('foo', $link); if (!$db_selected) { die ('Can\'t use foo : ' . mysql_error()); } ?> Pemrograman Web S1 Teknik Informatika STMIK Bumigora Menjalankan Query mysql_query ( string $query [, resource $link_identifier ] ) $query, merupakan perintah query MySQL yang akan dieksekusi $link_identifier merupakan variabel yang dihasikan dari penggunaan fungsi mysql_connect Kadang-kadang kita tidak menggunakan parameter $link_identifier Pemrograman Web S1 Teknik Informatika STMIK Bumigora Example <?php $result = mysql_query('SELECT * WHERE 1=1'); if (!$result) { die('Invalid query: ' . mysq l_error()); } ?> Pemrograman Web S1 Teknik Informatika STMIK Bumigora Menampilkan Data mysql_fetch_object - Ambil hasil baris sebagai obyek mysql_fetch_row - Dapatkan hasil baris sebagai array enumerated mysql_fetch_assoc - Ambil hasil baris sebagai array asosiatif mysql_fetch_array - Ambil hasil baris sebagai array asosiatif, array numerik, atau keduanya Pemrograman Web S1 Teknik Informatika STMIK Bumigora Cara Kerja Menampilkan Data Lakukan Koneksi mysql_connect() Pilih Database mysql_select_db() Jalankan Query $hasil = mysql_query Lakukan Looping data dengan menggunakan While while($data=mysql_fecth_array($hasil)) { // tampilkan data echo $data-> } Pemrograman Web S1 Teknik Informatika STMIK Bumigora Cara Mengakses While <?php $host = "localhost"; $user = "root"; $pass = ""; $dbnm = "pw2"; $conn = mysql_connect ($host, $user, $pass); if ($conn) { $buka = mysql_select_db ($dbnm); if (!$buka) { die ("Database tidak dapat dibuka"); } Pemrograman Web S1 Teknik Informatika STMIK Bumigora } else { die ("Server MySQL tidak terhubung"); } $result = mysql_query('SELECT * WHERE 1=1'); while ($hasil = mysql_fetch_array ($result)){ // proses tampilkan data } ?> Terima Kasih {: Ada Pertayaan :}