Warto przy korzystaniu z MySQL korzystać z bardzo przydatnego polecenia
Działa tak, że jeśli przy zapytaniu wystąpi błąd, to skrypt przerwie prace i np. wyświetli nam na ekranie tekst.
Przykład:
Jeśli nie nie połączyliśmy się z bazą, a chcemy wykonać zapytanie...
Kod php:
$zap = @mysql_query("SELECT * FROM USERS") or die('Blad w zapytaniu');
Jeśli wystąpi jakiś błąd skrypt wyświetli na ekranie "Blad w zapytaniu", ale co nam to da? Wiemy tylko że błąd występuje, ale nie mamy pojęcia jak go rozwiązać...
Z pomocą przychodzi
Przedstawia on nam gdzie występuję błąd i przedstawia jego treść, wystarczy go połączyć z "or die();" i dodać za zapytaniem.
Przykład:
Kod php:
$zap = @mysql_query("SELECT * FROM users") or die(mysql_error());
Jeśli nie jesteśmy połączeni z serwerem otrzymamy dokładny błąd, u mnie wygląda on tak:
Access denied for user 'ODBC'@'localhost' (using password: NIE)
Uwaga!! Jeśli korzystamy z or die, to stawiamy średnik na końcu polecenia!
Poprawnie:
$zap = @mysql_query("SELECT * FROM users") or die(mysql_error());
Niepoprawnie:
$zap = @mysql_query("SELECT * FROM users"); or die(mysql_error());
Przykład z brakiem połączenia nie jest zbyt dobry, więc wykorzystamy inny:
Mam baze danych SQL, mam tabelę 'firma', ale nie mam kolumny 'szyld' które wykorzystuję do WHERE.
Kod php:
<?php
include_once('db.php');
$zap = mysql_query("SELECT * FROM firma WHERE szyld = lol");
while ($sql = mysql_fetch_array($zap)) {
echo $sql['szyld'];
}
?>
Otrzymamy błąd:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\.... on line 4
Za to jeśli wykorzystamy "or die" otrzymamy elegancką treść.
Kod:
Kod php:
<?php
include_once('db.php');
$zap = mysql_query("SELECT * FROM firma WHERE szyld = lol") or die(mysql_error());
while ($sql = mysql_fetch_array($zap) or die(mysql_error())) {
echo $sql['szyld'];
}
?>
Błąd:
Nieznana kolumna 'szyld' w where clause
No i teraz wiemy, że nie mamy kolumny 'szyld'...
Mam nadzieję, że teraz będzie mniej problemów z błędami MySQL.
Zapraszam do wytykania błędów
.
Zakładki