PHP
Errori comuni
Ricerca…
Fine $ inattesa
Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\stack\index.php on line 4
Se si verifica un errore come questo (oa volte una unexpected $end
, a seconda della versione di PHP), è necessario assicurarsi di aver abbinato tutte le virgolette, tutte le parentesi, tutte le parentesi graffe, tutte le parentesi, ecc.
Il seguente codice ha prodotto l'errore precedente:
<?php
if (true) {
echo "asdf";
?>
Notare la parentesi graffa mancante. Inoltre, tieni presente che il numero di riga visualizzato per questo errore è irrilevante: mostra sempre l'ultima riga del documento.
Chiama fetch_assoc su booleano
Se ricevi un errore come questo:
Fatal error: Call to a member function fetch_assoc() on boolean in C:\xampp\htdocs\stack\index.php on line 7
Altre varianti includono qualcosa sulla falsariga di:
mysql_fetch_assoc() expects parameter 1 to be resource, boolean given...
Questi errori indicano che c'è qualcosa di sbagliato nella tua query (si tratta di un errore PHP / MySQL) o nella tua referenziazione. L'errore precedente è stato prodotto dal seguente codice:
$mysqli = new mysqli("localhost", "root", "");
$query = "SELCT * FROM db"; // notice the errors here
$result = $mysqli->query($query);
$row = $result->fetch_assoc();
Per "correggere" questo errore, si consiglia di creare invece le eccezioni di mysql throw:
// add this at the start of the script
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Ciò quindi genererà un'eccezione con questo messaggio molto più utile:
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
Un altro esempio che potrebbe produrre un errore simile, è dove hai semplicemente fornito le informazioni sbagliate alla funzione mysql_fetch_assoc
o simile:
$john = true;
mysqli_fetch_assoc($john, $mysqli); // this makes no sense??