Laravel whereBinary(): Cara Membuat Query MySQL Case-Sensitive

Laravel menyediakan whereBinary() untuk membantu membuat perbandingan string MySQL yang memperhatikan huruf besar dan kecil. Ini berguna ketika aplikasi membedakan Codekop dan codekop, sementara collation database biasanya bersifat case-insensitive.

Contoh query:

$users = User::query()
    ->whereBinary('username', 'Codekop')
    ->get();

Query ini bukan pengganti validasi atau unique constraint. Aturan data tetap perlu dirancang pada schema database dan diuji sesuai collation yang dipakai.

Kapan fitur ini berguna?

  • Pencarian token atau identifier yang case-sensitive.
  • Validasi kode undangan atau reference code.
  • Migrasi data yang memiliki perbedaan kapitalisasi.

Developer perlu memastikan database driver dan versi Laravel mendukung method tersebut. Gunakan query log pada staging untuk memeriksa SQL yang dihasilkan, dan pertimbangkan index bila kolom sering dicari.

Keamanan

Jangan menggunakan perbandingan case-sensitive sebagai satu-satunya kontrol akses. Authorization, hashing password, rate limit, dan normalisasi input tetap harus diterapkan secara terpisah.

Kesimpulan

whereBinary() memberi API yang lebih jelas untuk kebutuhan query MySQL tertentu. Uji perilakunya pada collation, index, dan data production sebelum melakukan migrasi.

Sumber asli:

https://laravel-news.com/laravel-where-binary

Transparansi: Artikel ini disusun bersama Codekop AI berdasarkan sumber yang tercantum, kemudian ditinjau dan disunting oleh Fauzan Falah. AI dapat keliru, jadi silakan cek kembali sumber asli.
Komentar