Obowiązkowa aktualizacja :ponieważ mysql ext już nie istnieje, oto odpowiedzi dla dwóch pozostałych interfejsów API MySQL, które napisałem na mojej stronie w oparciu o doświadczenie z odpowiedzi na pytania z tysięcy tysięcy na Stack Overflow:
- Jak zgłaszać błędy w mysqli
- Jak połączyć się z MySQL za pomocą PDO (w celu prawidłowego raportowania błędów).
W skrócie, dla mysqi przed mysqli_connect()
należy dodać następujący wiersz zadzwoń:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
natomiast dla PDO należy ustawić właściwy tryb błędu, na przykład
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
Od starego mysql ext,
Aby uzyskać błąd z mysql_query()
musisz użyć mysql_error()
funkcji.
Więc zawsze uruchamiaj wszystkie zapytania w ten sposób, przynajmniej do czasu opracowania bardziej zaawansowanego modułu obsługi zapytań:
$query = "SELECT * FROM 'users'";
$result = mysql_query($query) or trigger_error(mysql_error()." ".$query);
problem z aktualnym zapytaniem to 'users'
część. Pojedyncze cudzysłowy muszą być użyte do odgraniczenia ciągów, podczas gdy dla identyfikatorów musisz użyć backticków:
SELECT * FROM `users`
Aby zobaczyć te błędy podczas programowania, dodaj te wiersze na górze kodu, aby mieć pewność, że każdy wystąpił błąd
ini_set('display_errors',1);
error_reporting(E_ALL);
na serwerze produkcyjnym jednak wartość w pierwszym wierszu powinna zostać zmieniona z 1 na 0