En obligatorisk opdatering :da mysql ext ikke er mere, er her svar på to resterende MySQL API'er, som jeg skrev på mit websted baseret på erfaringerne fra at besvare 1000'er spørgsmål om Stack Overflow:
- Sådan rapporteres fejl i mysqli
- Sådan opretter du forbindelse til MySQL ved hjælp af PDO (med henblik på korrekt fejlrapportering).
Kort sagt, for mysqi skal følgende linje tilføjes før mysqli_connect()
ring:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
mens for PDO skal den korrekte fejltilstand indstilles, for eksempel
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
Fra det gamle mysql ext,
For at få en fejl fra mysql_query()
du skal bruge mysql_error()
funktion.
Så kør altid alle dine forespørgsler på denne måde, i det mindste indtil du udvikler en mere avanceret forespørgselshåndtering:
$query = "SELECT * FROM 'users'";
$result = mysql_query($query) or trigger_error(mysql_error()." ".$query);
problemet med din aktuelle forespørgsel er 'users'
en del. Enkelte anførselstegn skal bruges til at afgrænse strenge, mens du for identifikatorerne skal bruge backticks:
SELECT * FROM `users`
For at se disse fejl under udviklingen skal du tilføje disse linjer øverst i din kode for at være sikker på, at du kan se alle fejl, der er opstået
ini_set('display_errors',1);
error_reporting(E_ALL);
på produktionsserveren bør værdien på den første linje dog ændres fra 1 til 0