MySQL adalah database SQL bukan?
Sayangnya, programer PHP pemula kadang terbatas sekali pengetahuan SQL-nya.
Padahal, untuk menggunakan database MySQL dengan efektif, ia tidak boleh malas
mempelajari bahasa kedua, yaitu SQL. Jika tidak belajar SQL, maka ada
kemungkinan Anda akan melakukan hal-hal seperti:
$res = mysql_query("SELECT * FROM bigtable"); while ($row = mysql_fetch_assoc($res)) { if ($row['age'] >= 40) { echo "Ditemukan kustomer yang berusia lebih dari 40 tahun!\n"; break; } }
Apa salah kode di atas? Si
programer PHP mencoba mensimulasikan klausa WHERE
SQL dengan melakukan pengujian kondisi di kode PHP. Padahal, yang seharusnya
dilakukan adalah:
SELECT * FROM bigtable WHERE age >= 40
Ini amat mengirit trafik
client/server karena tidak semua record harus dikirimkan dari MySQL ke program
PHP Anda.
Sebagian pembaca mungkin
geleng-geleng kepala. Apa benar ada programer PHP yang seperti ini? Percaya
deh, ada.
SQL sudah menyediakan cara untuk
menyortir data, memformat tampilan, mengelompokkan dan memfilter record, dsb.
MySQL juga terkenal banyak menyediakan fungsi-fungsi, mulai dari manipulasi
tanggal, angka, string, dsb. Kenali SQL dan fungsi-fungsi MySQL; jangan
duplikasikan ini semua di PHP sebab akan lebih efisien jika dilakukan di level
MySQL.
Ini contoh lain programer PHP yang
tidak memanfaatkan fasilitas dari MySQL:
$res = mysql_query("SELECT * FROM customers"); while ($row = mysql_fetch_assoc($res)) { # format semula yyyy-mm-dd... preg_match("/(\d\d\d\d)-(\d\d?)-(\d\d?)/", $row[date], $matches); # ... dan ingin dijadikan dd/mm/yyyy $tanggal = "$matches[3]/$matches[2]/$matches[1]"; echo "Nama=$row[name], Tanggal lahir=$tanggal<br>\n"; }
Padahal MySQL sudah menyediakan
fungsi pemformatan dan manipulasi tanggal:
$res = mysql_query("SELECT name, DATE_FORMAT(date,'%d-%m-%Y') as tanggal ". "FROM customers"); while ($row = mysql_fetch_assoc($res)) { # tidak perlu capek-capek manipulasi string lagi... echo "Nama=$row[name], Tanggal lahir=$row[tanggal]<br>\n"; }
0 komentar:
Posting Komentar