MySQL errors
Soms heb je een mysql error. Je krijgt dan van die irritante meldingen zoals 'No valid MySQL result in blaat.php on line 13'. Dit houdt niet in dat er een puntkomma, een haakje of akkolade is vergeten. Het houdt wel in dat in de meeste gevallen de MySQL query niet goed is!
Voorbeeld:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?
//-- haal de gegevens uit de database
$sql = "SELECT id FROM tabel_naam WHERE veld = 'waarde'";
//-- voer de query uit
$res = mysql_query($sql);
//-- zet het id nummer in een variabele
$id = mysql_result($res, 0);
?>
//-- haal de gegevens uit de database
$sql = "SELECT id FROM tabel_naam WHERE veld = 'waarde'";
//-- voer de query uit
$res = mysql_query($sql);
//-- zet het id nummer in een variabele
$id = mysql_result($res, 0);
?>
Wanneer tabel_naam niet bestaat, of er geen database connectie tot stand is gebracht, zul je de bovenstaande error krijgen (of een variant daarvan). Hij zal pas bij mysql_result($res, 0); een error geven. Dit omdat hij dan pas met de uitgevoerde SQL code doet (met $res dus). Wanneer je wel een database connectie hebt en je krijgt deze error ook, dan is de query in de meeste gevallen niet goed. Om dit te debuggen moet je in dit geval '$sql' weergeven (dus gewoon via echo) en or die(mysql_error()) achter de mysql_query($res) zetten:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?
//-- haal de gegevens uit de database
$sql = "SELECT id FROM tabel_naam WHERE veld = 'waarde'";
//-- toon $sql
echo "sql: $sql<br />";
//-- voer de query uit
$res = mysql_query($sql) or die(mysql_error());
//-- zet het id nummer in een variabele
$id = mysql_result($res, 0);
?>
//-- haal de gegevens uit de database
$sql = "SELECT id FROM tabel_naam WHERE veld = 'waarde'";
//-- toon $sql
echo "sql: $sql<br />";
//-- voer de query uit
$res = mysql_query($sql) or die(mysql_error());
//-- zet het id nummer in een variabele
$id = mysql_result($res, 0);
?>
Met de toepassingen die hierboven in het script zijn aangebracht, zul je de fout zo herkennen. Ook als er geen database connectie is. Hij zal dan een error geven zoals: 'No database connection' wanneer de query wordt uitgevoerd. Deze error krijg je d.m.v. de functie mysql_error()). Wanneer er wel een database connectie is en de SQL code ($sql = "SELECT id FROM tabel_naam WHERE veld = 'waarde'";) is niet goed, zal hij een error geven zoals: No valid MySQL result in blaat.php on line 11: Error bericht. Dit kan varieren van: 'Expecting '' near FROM', of 'Column count does not match fields', of 'No such table in database' etc. Via deze foutmeldingen kom je er dus gauw achter!
« vorige pagina | volgende pagina »