Demo image Demo image Demo image Demo image Demo image Demo image Demo image Demo image

Bahasa SQL dan Fungsi-Fungsi MySQL

  • Jumat, 14 Desember 2012
  • Eric Hermawan
  • 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

    (c) Copyright 2012 Aneka BOLA. gubhugsport by Eric Hermawan