PHP
Veel voorkomende fouten
Zoeken…
Onverwacht $ einde
Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\stack\index.php on line 4
Als u een dergelijke foutmelding krijgt (of soms unexpected $end
, afhankelijk van de PHP-versie), moet u ervoor zorgen dat u alle omgekeerde komma's, alle haakjes, alle accolades, alle haakjes, enz. Hebt gevonden.
De volgende code heeft de bovenstaande fout veroorzaakt:
<?php
if (true) {
echo "asdf";
?>
Let op de ontbrekende accolade. Merk ook op dat het regelnummer dat voor deze fout wordt weergegeven niet relevant is - het toont altijd de laatste regel van uw document.
Roep fetch_assoc op boolean aan
Als u een foutmelding als deze krijgt:
Fatal error: Call to a member function fetch_assoc() on boolean in C:\xampp\htdocs\stack\index.php on line 7
Andere variaties omvatten iets in de trant van:
mysql_fetch_assoc() expects parameter 1 to be resource, boolean given...
Deze fouten betekenen dat er iets mis is met uw zoekopdracht (dit is een PHP / MySQL-fout) of met uw verwijzing. De bovenstaande fout is veroorzaakt door de volgende code:
$mysqli = new mysqli("localhost", "root", "");
$query = "SELCT * FROM db"; // notice the errors here
$result = $mysqli->query($query);
$row = $result->fetch_assoc();
Om deze fout te "repareren", is het raadzaam om in plaats daarvan mysql-uitzonderingen te maken:
// add this at the start of the script
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Dit zal dan een uitzondering genereren met dit veel nuttiger bericht:
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
Een ander voorbeeld dat een vergelijkbare fout zou veroorzaken, is dat je gewoon de verkeerde informatie hebt gegeven aan de functie mysql_fetch_assoc
of iets dergelijks:
$john = true;
mysqli_fetch_assoc($john, $mysqli); // this makes no sense??