Du foretager ikke nogen fejlkontrol i din forespørgsel, så det er ikke underligt, at den går i stykker, hvis forespørgslen mislykkes. Hvordan man tilføjer korrekt fejlkontrol er beskrevet i manualen på mysql_query()
eller i denne referencespørgsmål.
Eksempel:
$result = mysql_query($SQL);
if (!$result)
{ trigger_error("mySQL error: ".mysql_error());
die(); }
din forespørgsel går i stykker, fordi du ikke pakker inputtet ind i anførselstegn. Du kan kun undgå* anførselstegn for heltal (som 62ac1175
er ikke). Prøv
$SQL = "SELECT * FROM tb_employees WHERE URL_ID = '$URL_ID'";
Den kode, du viser, er også sårbar over for SQL-injektion
. Brug den korrekte sanitetsmetode for dit bibliotek (såsom mysql_real_escape_string()
for det klassiske mysql-bibliotek, som du bruger), eller skift til PDO og forberedte erklæringer.
I din kode vil dette se sådan ud:I stedet for
$URL_ID = $_GET["a"];
gør
$URL_ID = mysql_real_escape_string($_GET["a"]);
* hvis du dog undgår anførselstegn, mysql_real_escape_string()
virker ikke, og du skal kontrollere manuelt, om parameteren faktisk er et heltal.