MeekroDB – simple PHP MySql Library

MeekroDB adalah sebuah library PHP MySQL yang dapat anda gunakan untuk mempersingkat/memperpendek jumlah baris statement PHP dalam melakukan query ke MySql, selain itu MeekroDB juga dapat mencegah SQL injection pada site anda.

Contohnya jika kita melakukan query mysql dengan hanya menggunakan php saja, lalu melakukan pengecekan error dan lalu ingin mengambil record pertama, maka biasanya susunan kodenya seperti dibawah ini :

$result = $mysqli->query(“SELECT * FROM accounts WHERE username=’” . $mysqli->real_escape_string($username) . “‘ AND rank=” . intval($rank));
if ($result->error) die(“Error occurred: ” . $result->error);
$user = $result->fetch_assoc();

Ternyata diperlukan 3 baris kode php, sementara itu anda harus meng-escape string, juga menggunakan fungtion intval untuk menarik nilai integer dari variabel $rank. Semakin banyak query anda maka ketiga baris kode itu juga akan semakin sering ditulis kembali. Jika kita menggunakan MeekroDB, maka ketiga baris kode diatas dapat disederhanakan menjadi hanya satu baris seperti berikut ini :

$user = DB::queryOneRow(“SELECT * FROM accounts WHERE username=%s AND rank=%i”, $username, $rank);

Berikut ini akan saya tuliskan beberapa contoh penggunaan MeekroDB dan perbandingannya jika menggunakan PHP biasa.

  • select

Jika menggunakan PHP saja maka anda harus selalu meng-escape variabel jika tidak ingin terkena SQL injection, seperti contoh ini :

$mysqli->query(“SELECT * FROM login WHERE username=’” . $mysqli->real_escape_string($username) . “‘ AND password=’” . $mysqli->real_escape_string($password) . “‘”);

Jika anda menggunakan MeekroDB, maka anda tidak perlu peduli dengan proses escape variabel, dan baris kode diatsa dapat diubah menjadi berikut ini :
DB::query(“SELECT * FROM login WHERE username=%s AND password=%s”, $username, $password);
  • insert /  update
Jika menggunakan PHP biasa maka anda harus memasangkan sendiri nama field dengan value-nya pada saat insert, juga anda harus meng-escape value-nya sebelum query dijalankan, seperti contoh berikut ini :
$mysqli->query(“INSERT INTO mytable (`name`, `rank`, `location`, `age`, `intelligence`) VALUES (‘” . $mysqli->real_escape_string($name) . “‘,’” . $mysqli->real_escape_string($rank) . “‘,’” . $mysqli->real_escape_string($location) . “‘,” . intval($age) . “,’” . $mysqli->real_escape_string($intelligence) . “‘)”);
Jika menggunakan MeekroDB maka baris kode diatas dapat dipersingkat menjadi :
      DB::insert('mytable', array(
        'name' => $name,
        'rank' => $rank,
        'location' => $location,
        'age' => $age,
        'intelligence' => $intelligence
      ));

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s