Ve svém dotazu neprovádíte žádnou kontrolu chyb, takže není divu, že se v případě selhání dotazu přeruší. Jak přidat správnou kontrolu chyb je popsáno v příručce k mysql_query()
nebo v tomto referenční otázka.
Příklad:
$result = mysql_query($SQL);
if (!$result)
{ trigger_error("mySQL error: ".mysql_error());
die(); }
váš dotaz je přerušený, protože nezalamujete vstup do uvozovek. Uvozovkám* se můžete vyhnout pouze u celých čísel (což 62ac1175
není). Zkuste
$SQL = "SELECT * FROM tb_employees WHERE URL_ID = '$URL_ID'";
Kód, který zobrazujete, je také zranitelný vůči vkládání SQL
. Použijte správnou metodu sanitace vaší knihovny (jako mysql_real_escape_string()
pro klasickou mysql knihovnu, kterou používáte), nebo přepněte na PDO a připravené příkazy.
Ve vašem kódu by to vypadalo takto:Místo
$URL_ID = $_GET["a"];
udělat
$URL_ID = mysql_real_escape_string($_GET["a"]);
* pokud se však vyhnete uvozovkám, mysql_real_escape_string()
nebude fungovat a musíte ručně zkontrolovat, zda je parametr skutečně celé číslo.