Geen fout met PDO
Heey,
Ik gebruik nu sinds een korte tijd PDO.
Dat werkt opzich erg goed, en veilig.
Maar als ik een fout maak in de query. Geeft PDO geen foutmelding.
errorInfo heeft dan alleen maar 00000 als data.
Bijv.
SELECT * FROM x_page.
Als x_page dan niet bestaat, geeft hij error 00000. Terwijl mysql zelf toch duidelijk een error zou geven.
Wat doe ik fout?
Ik gebruik gewoon de standaard pdo dingen.
Dus prepare en dan bindParam enz... en dan execute.
Kortom, hij geeft geen fout bij een domme query fout.
Hoe is dit op te lossen? Is dit een bekend probleem?
gr Han
Gewijzigd op 01/01/1970 01:00:00 door Han eev
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
try
{
$pdo = new PDO("Instellingen");
//Queries enzo
}
catch(Exception $e)
{
echo 'Er is een fout opgetreden: '.$e->getMessage;
}
?>
try
{
$pdo = new PDO("Instellingen");
//Queries enzo
}
catch(Exception $e)
{
echo 'Er is een fout opgetreden: '.$e->getMessage;
}
?>
Tom Keim schreef op 04.04.2008 19:21:
pdo gebruikt exception dus dit pas je zo toe:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
try
{
$pdo = new PDO("Instellingen");
//Queries enzo
}
catch(Exception $e)
{
echo 'Er is een fout opgetreden: '.$e->getMessage;
}
?>
try
{
$pdo = new PDO("Instellingen");
//Queries enzo
}
catch(Exception $e)
{
echo 'Er is een fout opgetreden: '.$e->getMessage;
}
?>
Nee die moet je niet hebben, je moet PDOException $e.... hebben. Het is nl. geen systeemfout. de PDOException class zorgt voor de errors bij PDO.
Ook met je oppassen met $e->getMessage() deze bevat namelijk o.a. je gebruikersnaam en dus kan je deze absoluut niet in een productie omgeving gebruiken!
Edit:
Met $e->getCode() kan je dan de error code opvragen, maar let op dat deze verschillen van de ingebouwde mysql_* foutmeldingen.
Met $e->getCode() kan je dan de error code opvragen, maar let op dat deze verschillen van de ingebouwde mysql_* foutmeldingen.
Gewijzigd op 01/01/1970 01:00:00 door Bo az
Waarschijnlijk moet je via PDO::setAttribute PDO::ATTR_ERRMODE even op PDO::ERRMODE_EXCEPTION zetten.
Dat was het idd, weer wat bijgeleerd.
Nu krijg ik wel fatsoenlijke fouten! Bedankt!
ow, raak altijd in de war met die dingen. Maar PDO is echt cool, alleen jammer dat m'n host het niet ondersteund