Semicolon; Penggunaan Kondisi ‘1=1’ Dalam SQL Database
Pernahkah kalian melihat atau menemukan suatu query SQL yang didalamnya terdapat kondisi ‘1=1’?
Secara pengertian ‘1=1’ ini merupakan kondisi yang menghasilkan output selalu true. Ketika digunakan dalam sebuah query, kondisi ini tidak memberikan efek apa pun terhadap hasil query. Lalu apakah ‘1=1’ ini sebenarnya dapat kita manfaatkan dan berguna dalam penerapan menulis query SQL?
Ternyata walaupun terlihat sepele dan penggunaan ‘1=1’ sangat sederhana. Namun, penggunaan ‘1=1’ ini bisa sangat berguna dan membantu, salah satunya adalah penggunaan pada kasus pembuatan Query yang Dinamis.
Secara sederhana query dinamis adalah query yang bisa berubah-ubah berdasarkan kebutuhan atau input yang diberikan.
Contoh Penerapan
Sebenarnya permasalahan dalam membuat query yang dinamis di beberapa database SQL adalah ketika ingin memulai pengkondisian kita diwajibkan menggunakan klausa WHERE yang cukup menyulitkan dalam membuat query yang dinamis.
Maka biasanya dalam membuat query yang dinamis kita dapat memanfaatkan penggunaan kondisi ‘1=1’ pada awal (WHERE) pengkondisian query, sehingga memungkinkan kita untuk secara fleksibel membangun kriteria kondisi berdasarkan input pengguna dengan lebih mudah karena kita hanya perlu menambahkan kondisi (AND).
Berikut contoh singkat dalam bahasa PHP:
//Misal filter dinamis dari input users
$inputFilterName = $request->input('name');
$inputFilterAddress = $request->input('address');
//String Query
$sql = "SELECT * FROM users WHERE 1=1";
//Pengkondisian dinamis untuk name
if($inputFilterName !== null){
$sql .= "AND name = '$inputFilterName'";
}
//Pengkondisian dinamis untuk address
if($inputFilterAddress !== null){
$sql .= "AND address = '$inputFilterAddress'";
}
//exec query
mysqli_query($koneksi, $sql);
Dengan kondisi diatas kita telah membuat query secara dinamis yang dihasilkan berdasarkan input yang berbeda-beda dan sesuai kebutuhan. Penggunaan ‘1=1’ pada contoh diatas sangatlah membantu, tanpa menggunakan ‘1=1’ akan cukup merepotkan dalam membuat query yang dinamis, jika kalian tidak percaya coba saja buat query dinamis tanpa kondisi ‘1=1'.
Note: Kode dan Query diatas hanyalah contoh untuk menjelaskan penggunaan ‘1=1’, sebenarnya contoh query diatas kurang baik dan perlu beberapa tambahan mekanisme untuk mencegah resiko serangan SQL injection.
Penutup
Dalam artikel ini, kita telah memanfaatkan penggunaan kondisi ‘1=1’ dalam query SQL dan bagaimana hal ini dapat berguna dalam pembuatan query dinamis. Meskipun tampak sederhana, ‘1=1’ memberikan fleksibilitas dalam membangun kondisi query berdasarkan input pengguna dengan lebih mudah.