Hay varias cosas mal con la forma en que haces esto.
Primero, no cita su valor:'$key'
$query = "SELECT * FROM `keys` WHERE `key` = '$key'";
En segundo lugar, su código está completamente abierto a la inyección de SQL. Escape de su valor:
$key = mysql_real_escape_string($_GET["key"]);
El código anterior es el mínimo absoluto que debe hacer.
Lo siguiente es que mysql_
Las funciones han quedado en desuso durante mucho tiempo y se han eliminado en PHP 7.
Deberá cambiar a mysqli_
o PDO
. Cuanto antes cambie, mejor. Lea esta pregunta para obtener más información:¿Cómo puedo evitar la inyección SQL en PHP?
Aparte de todos los problemas anteriores, te ahorrarás (y más aún a otros, si alguna vez tienen que leer tu código) un dolor de cabeza si nunca usas palabras clave y palabras reservadas como nombres de tablas o columnas, como ha señalado Jay Blanchard.