PHP
Powszechne błędy
Szukaj…
Nieoczekiwany koniec $
Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\stack\index.php on line 4
Jeśli pojawi się taki błąd (lub czasem unexpected $end
, w zależności od wersji PHP), musisz upewnić się, że dopasowałeś wszystkie odwrócone przecinki, wszystkie nawiasy, wszystkie nawiasy klamrowe, wszystkie nawiasy itp.
Poniższy kod spowodował powyższy błąd:
<?php
if (true) {
echo "asdf";
?>
Zwróć uwagę na brakujący nawias klamrowy. Zauważ również, że numer wiersza pokazany dla tego błędu nie ma znaczenia - zawsze pokazuje ostatni wiersz dokumentu.
Wywołaj fetch_assoc na boolean
Jeśli pojawi się taki błąd:
Fatal error: Call to a member function fetch_assoc() on boolean in C:\xampp\htdocs\stack\index.php on line 7
Inne odmiany obejmują coś w stylu:
mysql_fetch_assoc() expects parameter 1 to be resource, boolean given...
Błędy te oznaczają, że coś jest nie tak z zapytaniem (jest to błąd PHP / MySQL), jak iz odwołaniem. Powyższy błąd został wygenerowany przez następujący kod:
$mysqli = new mysqli("localhost", "root", "");
$query = "SELCT * FROM db"; // notice the errors here
$result = $mysqli->query($query);
$row = $result->fetch_assoc();
Aby „naprawić” ten błąd, zaleca się, aby mysql zgłaszał wyjątki:
// add this at the start of the script
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Spowoduje to wygenerowanie wyjątku z tą o wiele bardziej przydatną wiadomością:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELCT * FROM db' at line 1
Innym przykładem, który spowodowałby podobny błąd, jest po prostu podanie niewłaściwych informacji funkcji mysql_fetch_assoc
lub podobnej:
$john = true;
mysqli_fetch_assoc($john, $mysqli); // this makes no sense??