1 :: Akses Database mysql Dalam term ini penggunaan database adalah menggunakan database MySQL Koneksi ke server mysql $db_variable = mysql_connect("h...
:: Akses Database mySQL Dalam term ini penggunaan database adalah menggunakan database MySQL Koneksi ke server mySQL $db_variable = mysql_connect("host", "nama_user", "password"); Buat database $db_variable = mysql_create_db("nama_db"); Menggunakan database mysql_select_db("nama_db", $db_variable); Menjalankan query $variable_hasil = mysql_query("sql query",$db_variable); Menampilkan hasil query mysql_result($result,nomor record,"field name"); atau $baris = mysql_fetch_row($variable_hasil); $data = $baris [nomor indek kolom field tabel]; atau $baris = mysql_fetch_array($variable_hasil) $data = $baris [nama kolom field tabel] Perintah mysql_fetch_row atau mysql_fetch_array setiap kali digunakan akan menujuk ke baris record secara berurutan jika dipanggil secara berulang, sehingga perintah ini biasa digunakan dalam looping . Contoh koneksi database :
"; echo ""; } else { ?> Masukkan Saran dan Komentar Anda
Aas Meinardi, S.Si
Hal 3
Pemrograman Web
PHP & mySQL
:: Mencoba PHP & mySQL Membuat database pertama Sebelum kita bermain-main dengan data dalam database, tentunya kita membutuhkan data yang sudah ada didalamnya bukan? Cara yang paling mudah membuat tabel adalah meng gunakan PHPMyAdmin. Dengan PHPMyAdmin kita dapat meng-create, edit dan remove database, table , row, field, dll. Sangat pasti, daripada Anda melakukannya melalui telnet atau command prompt MySQL. Pertama-tama, pastikan Anda telah memasang PHPMyAdmin dengan benar. Jika Anda masih bingung, silakan baca penjelasannya di http://www.phpwizard.net/projects/phpMyAdmin/. Melalui input form, buatlah database baru dengan nama `mydb'. Jika berhasil, PHPMyAdmin langsung akan beralih ke database yang baru dibuat tersebut. Sekarang kita membuat tabel dalam database. Kita bisa membuatnya secara manual, tapi sekarang kita akan membuatnya dengan PHPMyAdmin pada field yang tersedia. Lakukan copy and paste , baris perintah dibawah ini: CREATE TABLE address ( id tinyint(4) DEFAULT '0' NOT NULL AUTO_INCREMENT, name varchar(50), address varchar(225), hnum varchar(10), wnum varchar(10), PRIMARY KEY (id), UNIQUE id (id)); INSERT INTO address VALUES (1,'James Red','3 Not Here Cres, Hopeville','555-4123','555-9777'); INSERT INTO address VALUES (2,'John Back','8 nice Place, Lo ','555-7894','555-3131'); INSERT INTO address VALUES (3,'Brad Feed','7 victor pl, Moronville','555-1919','555-9764'); Baris perintah tersebut akan membuat table dengan nama 'address'. Table 'address' juga akan berisi tiga record. Pada contoh ini kita hanya ingin membuat buku alamat sederhana. Sekarang kita sudah memilik i database, table dan beberapa contoh data. Sekarang kita akan tampilkan data tersebut dalam bentuk yang lebih manis dalam form. Menggunakan PHP, kita mem-format data menjadi bentuk HTML. Baris perintah tersebut akan membuat table dengan nama 'address'. Table 'address' juga akan berisi tiga record. Pada contoh ini kita hanya ingin membuat buku alamat sederhana. Sekarang kita sudah memiliki database, table dan beberapa contoh data. Sekarang kita akan tampilkan data tersebut dalam bentuk yang lebih manis dalam form. Menggunakan PHP, kita mom-format data menjadi bentuk HTML. Kembali kepada data Sekarang coba kita lakukan lagi Copy and Paste teks dibawah ini ke dalam HTML editor lalu simpan dengan nama file 'ope.php': \n", mysql_result($result,0,"name")); printf("Address: %s \n", mysql_result($result,0,"address")); printf("Home Number: %s \n", mysql_result($result,0,"hnum")); printf("Work Number: %s \n", mysql_result($result,0,"wnum")); ?> Kita baru saja membuat PHP script sederhana, yang hanya akan menampilkan satu record.
Aas Meinardi, S.Si
Hal 4
Pemrograman Web
PHP & mySQL
Coba kita lihat apa yang terjadi jika dijalankan. Fungsi mysql_connect() membuka link ke MySQL server pada host tertentu (localhost) sebagai root (username). Jika Anda ingin menggunakan password, bisa ditambahkan setelah username. Data untuk menjaga agar koneksi tertap terhubung tersimpan dalam sebuah variable $db. mysql_select_db() akan memberitahu web server bahwa semua queries yang telah dibuat langsung diarahkan ke database 'mydb'. Fungsi mysql mysql_select_db() bisa juga digunakan untuk membuat banyak koneksi ke banyak database. Selanjutnya kita akan mengambil beberapa data dari database. Nanti kita menggunakan fungsi mysql_query(). Mengunakan koneksi database yang tersimpan dalam variable $db, MySQL memproses query sebagai parameter pertama. Hasilnya tersimpan dalam varia ble $result. Terakhir fungsi mysql_result() kita pakai untuk menyimpan nilai field yang dihasilkan dari query kita tadi. Dengan $result, kita pindahkan pada baris pertama dan diberi nomor 0. Jika query ini berhasil, tentu ada output-nya. Fungsi print akan menangani masalah pencetakan data. '%s' adalah simbol untuk variable string , yang dalam prosesnya akan digantikan oleh hasil dari parameter kedua dari fungsi tersebut, yaitu mysql_result($result,0,"name"). Query ini hanya akan menampilkan satu baris tabel address. Jika kita ingin melihat semua baris, ubah 0 menjadi 1 (pada masing-masing pemanggilan mysql_result()) Selanjutnya, kita akan coba menampilkan multiple record dan bagaimana mengirim data dari/ke database.
Membuat looping Sekarang kita lihat apa yang bisa dilakukan PHP dan MySQL. Buka 'open.php' lalu ganti isinya dengan teks berikut: \n"; echo "
Name
Address
Home Number
Work Number
\n"; while ($myrow = mysql_fetch_row($result)) { printf("
%s
%s
%s
%s
\n", $myrow[1], $myrow[2], $myrow[3],$myrow[4]); } echo "\n"; ?> Simpan kembali 'open.php' lalu jalankan dari browser. Anda akan melihat semua data yang ada dalam tabel. Kalau kita perhatikan script-nya, Anda akan menemukan beberapa hal baru. Bagian dari tabel, statement while() adalah baru. Statement while akan mengatakan bahwa selama ada satu baris saja, maka akan menampilkan data pada semua baris yang ada. Fungsi mysql_fetch_row() digunakan untuk mencapai basil tersebut. Yang menarik dari menggunakan while() adalah jika query Anda tidak menghasilkan record, Anda tidak akan mendapatkan pesan error. Tapi jika tidak ada data, kita tidak akan tahu bagaimana cara memberitahunya ke user. Jadi kita perlu membuat program bantu lain yang bisa memberitahu user jika ada fungsi MySQL yang tidak berhasil menemukan record yang dicari dalam query:
Aas Meinardi, S.Si
Hal 5
Pemrograman Web
PHP & mySQL
\n"; echo "
Name
Address
Home Number
Work Number
\n"; do { printf("
%s
%s
%s
%s
\n", $myrow[name], $myrow[address], $myrow[hnum],$myrow[wnum]); } while ($myrow = mysql_fetch_array($result)); echo "\n"; } else { echo "Sorry, no records were found!"; } ?> Kalau diperhatikan, ada perbedaan dari script 'open.php'. yaitu kita menggunakan fungsi mysql_fetch_array() bukan mysql_fetch_row(), sehingga kita bisa me -refer ke field berdasarkan names (such as $myrow["name"]) mereka daripada mengunakan id yang ada. Jelas ini jauh lebih mudah daripada menggunakan angka Jadi kita tidak perlu pusing lagi. Kita juga perlu menambahkan do/ while dan sebuah statement if-else. Statement if-else mengatakan jika kita dapat me-assign sebuah baris ke $myrow, lalu lanjut; atau skip ke sesi lainnya dan menjalankan rutin yang berisi dalam blok yang kita buat sendiri. do/while merupakan variasi dari while() yang kita gunakan pada bagian akhir artikel ini. Kita membutuhkan do/ while untuk alasan-alasan khusus: dengan statement if, kita assign baris pertama yang dihasilkan oleh query ke variable $myrow . Jika pada saat ini kita menjalankan statement while secara normal (seperti while ($myrow = mysql_fetch_row($result)), maka kita akan membypass record pertama dengan record kedua. do/while bisa dipakai untuk menguji kondisi setelah program dijalankan sekali, jadi tidak ada tidak sengaja men-skip sebuah baris. Akhirnya jika tidak ada record sama sekali, statement akan dimasukan ke dalam blok else() dalam rutin yang akan dijalankan. Kalau man lihat bagaimana aksinya jika dijalankan, ubah statement ke SELECT * FROM dimana id=6 atau yang mirip dengan itu maka hasilnya tidak ada record. Linking Kita baru saja mempraktekan sebuah looping. Sebelum kita lanjut, kita pahami dulu bagaimana bekerja dengan HTML form, PHP melakukan query string, dan metode GET dan POST. Ada tiga cara untuk GET informasi ke dalam query variable string. Pertama, menggunakan metode GET dalam form. Kedua, mengetik langsung ke dalam URL pada browser. Ketiga, menambahkan query string ke dalam link. Buat saja anchor tag seperti berikut . Kita akan gunakan teknik ini. Pertama-tama, kita lakukan query lagi pada database, mengurutkan field name. Perhatikan script berikut:
Aas Meinardi, S.Si
$myrow = mysql_fetch_array($result); printf("Name: %s\n ", $myrow["name"]); printf("Address: %s\n ", $myrow["address"]); printf("Home Number: %s\n ", $myrow["hnum"]); printf("Work Number: %s\n ", $myrow["wnum"]); } else { // show employee list $result = mysql_query("SELECT * FROM address",$db); if ($myrow = mysql_fetch_array($result)) { // display list if there are records to display do { printf("%s \n", $PHP_SELF, $myrow["id"], $myrow["name"]); } while ($myrow = mysql_fetch_array($res ult)); } else { // no records to display echo "Sorry, no records were found!"; } } ?> Sekali lagi, timpa file 'open.php', jalankan dari browser dan lihat hasilnya. Hal yang harus Anda perhatikan adalah field name yang muncul, dan masing-masing field name berupa sebuah link. Output muncul karena loop ditempatkan dalam rutin yang kita buat. Kita sudah mengunakan fungsi printf(). Pertama, perhatikan masingmasing quotation mark diawali dengan backslash. Backslash memberitahu ke PHP untuk segera memproses karakter yang mengikutinya, daripada menjadikannya sebagai bagian dari rutin program kita. Perhatikan juga penggunaan variable $PHP_SELF. Variable ini (yang menyimpan nama dan lokasi script) dijalankan oleh setiap file PHP. Ini penting karena kita hanya ingin file ini memanggil dirinya sendiri. Dengan menggunakan $PHP_SELF, kita bisa tahu ini terjadi setiap saat: sekalipun file dipindahkan ke direktori lain atau server. PHP mampu melakukan sesuatu yang cerdik ketika melihat pasangan name/ value yang berisi query string. Maka secara otomatis akan dibuatkan sebuah variable dengan nama dari pasangan name/value tersebut. Variable ini berisi sebuah nilai dari pasangan name/value. Fitur ini bisa kita gunakan untuk menguji apakah seorang user baru pertama kali atau kedua kali mengakses halaman ini. Yang perlu kita lakukan hanyalah bertanya pada PHP adakah variable $id. Jika ada script akan menampilkan individual account, berdasarkan $id yang ada. Menambah record ke address book Kita sudah mempraktekan GET data dari database dengan mudah. Lalu bagaimana dengan sending data? Dengan PHP, hal ini mudah dilakukan. Pertama, kita buat halaman yang berisi form berikut: Kita pakai $PHP SELF lagi. Perhatikan bahwa setiap elemen form cocok dengan nama field dalam database. Tapi ini tidak wajib; agar kita lebih mudah melakukan GET. Juga perhatikan bahwa kita sudah menambahkan nama attribute pada tombol submit. Kita lakukan ini agar kita dapat menguji keberadaan variable $submit. Itulah sebabnya ketika halaman dipangil lagi, kita akan tahu seseorang telah mengunakan form ini. Kita tidak perlu mempunyai halaman yang loops back ke dirinya sendiri. Kita boleh saja mempunyai dua, tiga, atau lebih halaman. Tapi dengan mengunakan satu halaman, semuanya tetap bersama dan tetap dalam satu file.
Aas Meinardi, S.Si
Hal 7
Pemrograman Web
PHP & mySQL
Sekarang kita tambahkan beberapa rutin lagi untuk memeriksa isian form. Sekedar memastikan saja apakah semua isian dalam form sudah benar, kita akan melemparkan semua variable ke layar melalui array $HTTP_POST_ VARS. Fitur debugging ini cukup bermanfaat. Jika kita ingin melihat semua variable yang digunakan sebuah halaman, gunakan array $GLOBALS. \n"; } } else{ // display form ?> Sekarang kita dapat mengumpulkan informasi dari user, coba ambil informasi yang ada dalam form lalu POST ke database. Script ini akan akan menambahkan data baru kedalam tabel address. Bagaimana kalau sekarang kita bicara updating dan deleting record dari dalam tabel. Updating dan deleting record pada address book Untuk meng-update atau delete record dari tabel 'address', kita gunakan script yang ada sbb:
Aas Meinardi, S.Si
Hal 8
Pemrograman Web
PHP & mySQL
"; } elseif ($delete) { // delete a record $sql = "DELETE FROM address WHERE id=$id"; $result = mysql_query($sql); echo "$sql Record deleted!
"; } else { // this part happens if we don't press submit if (!$id) { // print the list if there is not editing $result = mysql_query("SELECT * FROM address",$db); while ($myrow = mysql_fetch_array($result)) { printf("%s \n", $PHP_SELF, $myrow["id"], $myrow["name"]); printf("(DELETE) ", $PHP_SELF, $myrow["id"]); } } ?>
Kelihatannya rumit tapi sebetulnya tidak. Script ini terbagi dalam tiga bagian. Pertama statement if() akan memeriksa adakah penekanan tombol submit. Jika ada penekanan tombol, script akan memeriksa keberadaan variable $id. Jika ada, akan ditambahkan record. Jika tidak, kita akan editing record.
Aas Meinardi, S.Si
Hal 9
Pemrograman Web
PHP & mySQL
Selanjutnya kita memeriksa keberadaan variable $delete. Jika ada, kita akan deleting record. Perhatikan dengan statement if() pertama, kita memeriksa variable dari POST, dan pada bagian ini, variable tersebut akan menjadi bagian dari kumpulan variable metode GET. Nah, sekarang kita menampilkan semua daftar orang-orang dan form. Sekali lagi, kita periksa dulu keberadaan varia ble $id. Jika ada, kita query database untuk menampilkan record yang sesuai. Jika tidak ada, kita hanya menampilkan form kosong. Kesimpulan Dengan bermain dengan database, kita bisa banyak belajar. Jika masih belum cukup, beli beberapa buku database yang memenuhi kebutuhan Anda. Sumber: devarticles
:: Fungsi-fungsi mySQL dalam PHP Nama Fungsi Kegunaan mysql_connect Digunakan untuk membuka hubungan (koneksi) dengan MySQL server. mysql_pconnect Membuka hubungan (koneksi) permanen/tetap dengan MySQL server mysql_close Menutup hubungan (koneksi) dengan MySQL server. mysql_create_db Membuat sebuah database baru pada server database MySQL. mysql_drop_db Mendrop atau menghapus sebuah database pada server database MySQL mysql_select_db Memilih sebuah database sebagai database aktif mysql_query Mengirim perintah SQL ke server MySQL untuk dieksekusi mysql_db_query Mengirim perintah SQL ke server MySQL pada database aktif mysql_fetch_array Mengambil baris hasil sebagai array assosiatif mysql_result Menampilkan data hasil query mysql_fetch_row Menampilkan baris hasil array satu persatu. mysql_affected_row Menampilkan nomor baris akibat dari insert, update, delete yang terakhir mysql_num_rows Menampilkan nomor baris pada hasil. Perintah ini hanya bisa digunakan pada select mysql_fetch_field Mencari informasi kolom dari dari hasil, dan menampilkannya sebagai obyek mysql_fetch_lengths Menampilkan panjang beberapa field pada baris terakhir mysql_fetch_object Menampilkan baris hasil berupa obyek mysql_field_name Menampilkan nama field tertentu mysql_list_fields Menampilkan daftar field mysql_num_fields Menampilkan nomor field mysql_field_seek Mencari field tertentu mysql_field_type Mendapatkan tipe field tertentu mysql_insert_id Mendapatkan id dari operasi insert sebelumnya mysql_data_seek Memindahkan hasil internal mysql_free_result Menampilkan memori yang bebas mysql_errno Menampilkan pesan error dari operasi yang dilakukan terakhir kali mysql_error Menampilkan pesan error berupa text dari operasi yang dilakukan terakhir kali mysql_list_dbs Menampilkan daftar database yang ada pada database MySQL mysql_list_tables Menampilkan daftar tabel yang ada pada database MySQL mysql_field_len Menampilkan panjang field tertentu mysql_field_table Mendapatkan nama field dari tabel tertentu mysql_tablename Mendapatkan nama tabel