MYSQL
MySQL adalah database SQL bukan? Sayangnya, programer PHP pemula kadangterbatas 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 adala
SELECT * FROM bigtable WHERE age >= 40
Ini amat mengirit trafik client/server karena tidak semua record harus dikirimkan dari MySQL ke program PHP And
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 MySQ
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
\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]
\n”;}
0 komentar:
Posting Komentar