Membuat koneksi dengan MySQL
Sebelum MySQL bisa diakses, kita harus membuat koneksi ke database
terlebih dahulu. Untuk melakukannya, kita bisa memakai fungsi
mysql_connect yang tersedia pada PHP
Fungsi mysql_connect memiliki parameter sebagai
berikut:
mysql_connect ( [string server [, string username [, string password [, bool new_link]]]])
Parameter:
-
Parameter pertama adalah alamat server database
MySQL
-
Parameter kedua adalah username yang digunakan untuk
mengakses database
-
Parameter ketiga adalah password dari username yang
dipakai
-
Parameter keempat adalah penanda apakah fungsi tersebut
selalu membuka koneksi baru atau tidak
Pada artikel kali ini, kita hanya menggunakan tiga parameter pertama
saja.
Fungsi ini sendiri akan menghasilkan sebuah penanda koneksi jika
koneksi ke database berhasil dilakukan, dan akan menghasilkan nilai
FALSE jika koneksi gagal dilakukan.
Misalnya kita mempunyai database MySQL di 192.168.1.2 dengan
username Teksound dan password DelapanBelas
$link = mysql_connect("192.168.1.2", "Teksound", "DelapanBelas");
Jika koneksi tidak berhasil dilakukan, akan muncul sebuah pesan
kesalahan yang akan. Agar pesan kesalahan tersebut tidak dimunculkan, bisa
ditambahkan tanda @ di depan fungsi.
$link = @mysql_connect("192.168.1.2", "Teksound", "DelapanBelas");
Agar bisa dilakukan tindakan yang berbeda terhadap hasil koneksi yang
berbeda juga (berhasil atau gagal), contoh statement di atas bisa dimasukkan
dalam pencabangan if (atau yang lainnya).
if ($link = @mysql_connect("192.168.1.2", "Teksound", "DelapanBelas")) {
...jika koneksi berhasil...
}
else {
...jika koneksi gagal...
}
Melakukan query
Setelah koneksi dibuat, kita sudah bisa melakukan query untuk
mengakses atau mengambil data dari database. Untuk mengirimkan query
(yang menggunakan SQL) ke database, bisa digunakan fungsi
mysql_query.
Fungsi ini memiliki dua parameter, yang pertama adalah query yang
ingin dilakukan, dan yang kedua adalah penanda koneksi (hasil dari
mysql_connect). Tetapi parameter kedua ini merupakan
sesuatu yang tidak harus dimasukkan. Pengaksesan database akan menggunakan
koneksi yang telah dilakukan sebelumnya.
Fungsi mysql_query ini akan menghasilkan nilai
FALSE jika terjadi kegagalan dalam melakukan
query (seperti SQL yang salah atau karena tidak adanya izin untuk mengakses
sebuah tabel). Sedangkan jika mysql_query berhasil
dilakukan, fungsi ini akan menghasilkan nilai sesuai query yang dilakukan.
Untuk SQL statement SELECT, SHOW, EXPLAIN atau DESCRIBE, fungsi ini akan
menghasilkan nilai keluaran dari query yang dilakukan (seperti tabel data
hasil query). Dan untuk SQL statement lainnya, fungsi ini akan menghasilkan
nilai TRUE.
Contoh penggunaan:
mysql_query("CREATE DATABASE Teksound");
$hasil = mysql_query("SELECT * FROM Teksound.database");
Agar nama database tidak harus selalu dimasukkan saat mengakses tabel,
kita bisa memilih dulu database mana yang akan digunakan. Untuk melakukannya
dapat digunakan fungsi mysql_select_db dengan parameter
nama databasenya. Fungsi ini akan menghasilkan nilai
TRUE jika berhasil dan
FALSE jika gagal.
Contoh:
mysql_select_db("Teksound");
$hasil = mysql_query("SELECT * FROM database");
Pada contoh di atas, hasil query akan ditampung di dalam variabel
$hasil. Bagaimana cara membacanya? Silahkan baca bagian selanjutnya karena
pada bagian ini kita hanya akan mencoba melakukan query saja.
Memproses Query
Setelah hasil query di dapat, sudah saatnya kita memanfaatkan hasil
tersebut. Ada beberapa fungsi yang disediakan oleh PHP untuk membaca hasil
query, tapi dalam artikel ini kita hanya akan membahas penggunaan
mysql_num_rows,
mysql_affected_rows
dan mysql_fetch_array (dan
mysql_fetch_rows,
mysql_fetch_assoc).
Fungsi mysql_num_rows digunakan untuk mendapatkan
banyaknya record (sebaris data) yang dihasilkan. Fungsi ini hanya memiliki
sebuah parameter yaitu hasil query. Fungsi ini akan menampilkan banyak baris
pada tabel hasil query, sehingga fungsi ini akan menghasilkan pesan
kesalahan jika parameter yang diberikan bukan merupakan hasil query yang
berhasil dilakukan.
Fungsi mysql_affected_rows digunakan untuk
mendapatkan banyaknya record yang "terkena dampak" dari query yang dilakukan
sebelumnya. Query yang dilakukan bisa berupa INSERT, UPDATE atau
DELETE.
Fungsi mysql_fetch_array,
mysql_fetch_rows, dan
mysql_fetch_assoc merupakan fungsi untuk mengambil
sebaris record dari hasil query dan menyimpannya dalam sebuah variabel
array. Yang membedakan dari ketiga fungsi tersebut adalah pemberian index
data (untuk setiap kolom/field yang ada) dalam array. Fungsi
mysql_fetch_rows akan memberikan index berupa angka,
fungsi mysql_fetch_assoc akan memberikan index berupa
nama field sesuai data yang bersangkutan, sedangkan fungsi
mysql_fetch_array akan memberikan index berupa angka
dan nama field.
Ketiga fungsi tadi akan menghasilkan sebuah variabel array jika masih
ada record yang tersedia, dan akan menghasilkan nilai
FALSE jika tidak ada lagi record yang
tersisa.
Misalnya kita mempunyai tabel sebagai berikut:
Angkatan | Ketua | Anggota |
---|---|---|
18 | Danang | 60 |
19 | Vicky | 49 |
Dengan fungsi mysql_fetch_rows akan dihasilkan
sebuah variabel array:
$hasil[0] = 18,
$hasil[1] = Danang, dan
$hasil[2] = 60
Dengan fungsi mysql_fetch_assoc akan dihasilkan sebuah variabel array:
$hasil["Angkatan"] = 18,
$hasil["Ketua"] = Danang,
dan
$hasil["Anggota"] = 60
Sedangkan fungsi mysql_fetch_array akan menghasilkan sebuah variabel
array:
$hasil[0] = 18,
$hasil["Angkatan"] = 18,
$hasil[1] = Danang,
$hasil["Ketua"] = Danang,
$hasil[2] = 60, dan
$hasil["Anggota"] = 60
Jika salah satu dari fungsi tadi dipanggil lagi, maka baris
selanjutnya yang akan dikeluarkan.
Pada artikel kali ini, kita hanya akan menggunakan salah satu dari
ketiga fungsi tadi, yaitu mysql_fetch_array.
Jika ingin membaca seluruh baris record, ada beberapa cara yang bisa
dilakukan.
Cara pertama adalah dengan mendapatkan banyaknya record lalu melakukan
looping sebanyak itu untuk mengambil nilai setiap recordnya.
Contoh:
$banyakBaris = mysql_num_rows($hasil);
for ($i=0;$i<$banyakBaris;$i++) {
$barisData = mysql_fetch_array($hasil);
...hasil ditampilkan...
}
Cara kedua adalah dengan mengambil nilai setiap recordnya sampai tidak
ada lagi record yang tersisa.
Contoh:
while ($barisData = mysql_fetch_array($hasil)) {
...hasil ditampilkan...
}
Setelah variabel array yang berisi sebaris data didapatkan,
selanjutnya kita perlu untuk memproses data-data yang ada. Untuk
melakukannya, kita hanya perlu untuk menggunakan nilai-nilai yang ada di
elemen array tadi.
Contoh:
while ($barisData = mysql_fetch_array($hasil)) {
$angkatan = $hasil["Angkatan"];
$ketua = $hasil["Ketua"];
$anggota = $hasil["Anggota"];
}
Pada contoh di atas, untuk setiap looping nya, kita akan mendapatkan
nilai untuk variabel $angkatan, $ketua
dan $anggota yang didapatkan dari array
$barisData.
Sekarang hanya tinggal bagaimana cara kita untuk menampilkan data-data
tersebut.
Misalnya ingin ditampilkan dalam sebuah tabel HTML
print("<table border="1">");
print("<tr><td>Angkatan</td><td>Ketua</td><td>Banyak Anggota</td></tr>");
while ($barisData = mysql_fetch_array($hasil)) {
$angkatan = $hasil["Angkatan"];
$ketua = $hasil["Ketua"];
$anggota = $hasil["Anggota"];
print("<tr>");
print("<td>$angkatan</td>");
print("<td>$ketua</td>");
print("<td>$anggota</td>");
print("</tr>");
}
print("</table>");
Mengakhiri koneksi
Setelah seluruh rangkaian query dilakukan, ada baiknya jika kita
memutuskan koneksi ke database. Sebenarnya hal ini bukanlah sesuatu yang
harus dilakukan, karena koneksi akan secara otomatis diputus setelah script
selesai dijalankan. Untuk melakukannya, bisa digunakan fungsi
mysql_close.
Fungsi ini memiliki sebuah parameter, yaitu penanda koneksi yang kita
dapatkan saat memulai koneksi tadi.
Cara penggunaan:
mysql_close($link);
Jika parameter pertama tidak dimasukkan, maka koneksi terakhir yang
dilakukanlah yang akan diputus.
Tidak ada komentar:
Posting Komentar