Kontrollera alltid returvärdet från mysql_query()

Då man ställer en fråga mot MySQL (eller någon annan databas) är det viktigt att alltid kontrollera så att inget gick fel. Det är mycket vanligt att folk missar detta och när de då några rader senare skall hämta ut de data de förväntar sig SQL-frågan returnerat, får de det notoriska felmeddelandet ”supplied argument is not a valid MySQL result resource”. Det enklaste sättet att kontrollera så att mysql_query() gick som det skulle är att lägga till en liten villkorssats efter anropet. Såhär t.ex.

$sql = ’SELECT foo FROM bar WHERE id=’.$id;
$result = mysql_query($sql) or exit(mysql_error());

Om SQL-frågan av någon anledning inte går som den ska kommer PHP avsluta skriptet och skriva ut felmeddelandet från MySQL. I 95% av fallen är detta tillräckligt för att man ska kunna se vad som är fel. Är man osäker kan man skriva ut SQL-frågan istället för att köra den. Alltså:

$sql = ’SELECT foo FROM barWHERE id=’.$id;
exit($sql);

Comments are closed.