Ada beberapa hal yang salah dengan cara Anda melakukannya.
Pertama, Anda tidak mengutip nilai Anda:'$key'
$query = "SELECT * FROM `keys` WHERE `key` = '$key'";
Kedua, kode Anda terbuka lebar untuk injeksi SQL. Melarikan diri dari nilai Anda:
$key = mysql_real_escape_string($_GET["key"]);
Kode di atas adalah minimum mutlak yang perlu Anda lakukan.
Selanjutnya adalah mysql_
fungsi telah lama ditinggalkan dan telah dihapus di PHP 7.
Anda harus beralih ke mysqli_
atau PDO
. Semakin cepat Anda beralih, semakin baik. Silakan baca pertanyaan ini untuk informasi lebih lanjut:Bagaimana saya bisa mencegah injeksi SQL di PHP?
Terlepas dari semua masalah di atas, Anda akan menyelamatkan diri sendiri (dan terlebih lagi orang lain, jika mereka harus membaca kode Anda) sakit kepala jika Anda tidak pernah menggunakan kata kunci dan kata khusus sebagai nama tabel atau kolom, seperti yang dicatat Jay Blanchard.