Extension : mysql
Gestion des erreurs avec mysql.trace_mode
Options : On, Off
Défaut : Off
Recommandé : On
http://www.php.net/manual/fr/mysql.conf ... trace-mode
ini_set('mysql.trace_mode', 1);
mysql_connect('localhost', 'root');
$query = mysql_query('error');Warning: mysql_query(): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'error' at line 1 in /Library/WebServer/Documents/test/index.php on line 3
Extension : mysqliGestion des erreurs avec mysqli_report ou la class mysqli_driver et sa propriété report_mode
Options : MYSQLI_REPORT_OFF, MYSQLI_REPORT_ALL, MYSQLI_REPORT_STRICT, MYSQLI_REPORT_ERROR , MYSQLI_REPORT_INDEX
Défaut : MYSQLI_REPORT_OFF
Recommandé : MYSQLI_REPORT_ALL & ~MYSQLI_REPORT_STRICT
Recommandé POO : MYSQLI_REPORT_ALL
http://fr.php.net/manual/fr/function.mysqli-report.php
http://fr.php.net/manual/fr/class.mysql ... eport-mode
//Procedural
mysqli_report(MYSQLI_REPORT_ALL & ~MYSQLI_REPORT_STRICT);
$dbh = mysqli_connect('localhost', 'root');
$query = mysqli_query($dbh, 'error');
//POO
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL & ~MYSQLI_REPORT_STRICT;
$dbh = new mysqli('localhost', 'root');
$query = $dbh->query('error');Warning: mysqli::query(): (42000/1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'error' at line 1 in /Library/WebServer/Documents/test/index.php on line 6
Extension : PDOGestion des erreurs avec l'attribut PDO::ATTR_ERRMODE
Options : PDO::ERRMODE_SILENT, PDO::ERRMODE_WARNING, PDO::ERRMODE_EXCEPTION
Défaut : PDO::ERRMODE_SILENT
Recommandé : PDO::ERRMODE_WARNING
Recommandé POO : PDO::ERRMODE_EXCEPTION
http://php.net/manual/fr/pdo.error-handling.php
try
{
$dbh = new PDO('mysql:host=localhost', 'root');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}
catch(PDOException $e)
{
exit($e->getMessage());
}
$query = $dbh->query('error');Warning: PDO::query(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'error' at line 1 in /Library/WebServer/Documents/test/index.php on line 11
EDIT pour les modos : ca aurait peu-être plus sa place dans Vos contributions ou FAQ et tutoriels