PDO �ṩ�����ֲ�ͬ�Ĵ�����ģʽ�������㲻ͬ����Ӧ�ÿ�����
PDO::ERRMODE_SILENT
��ΪĬ��ģʽ�� PDO ��ֻ�����ô����룬��ʹ�� PDO::errorCode() �� PDO::errorInfo() ����������������ݿ����������������ڶ�������ĵ��ö������ģ���ô���Ե����Ǹ������ PDOStatement::errorCode() �� PDOStatement::errorInfo() ������������������ڵ������ݿ����������ģ���ô���������ݿ�����ϵ�����������������
PDO::ERRMODE_WARNING
�����ô�����֮�⣬PDO ��������һ����ͳ�� E_WARNING ��Ϣ�����ֻ���뿴��������ʲô�����Ҳ��ж�Ӧ�ó�������̣���ô�������ڵ���/�����ڼ�dz����á�
PDO::ERRMODE_EXCEPTION
�����ô�����֮�⣬PDO �����׳�һ�� PDOException �쳣�ಢ�����������������������ʹ�����Ϣ���������ڵ����ڼ�Ҳ�dz����ã���Ϊ������Ч�طŴ�ű��в�������ĵ㣬�Ӷ����Էdz����ٵ�ָ���������������DZ������ס������쳣���½ű���ֹ���������Զ��ع�����
�쳣ģʽ��һ���dz����õ��ǣ���ȴ�ͳ PHP ���ľ��棬���Ը������ع����Լ��Ĵ��������ұ���Ĭģʽ����ʽ�ؼ��ÿ�����ݿ���õķ���ֵ���쳣ģʽ��Ҫ�Ĵ���/Ƕ���١�
See Exceptions for more information about Exceptions in PHP.
PDO ʹ�� SQL-92 SQLSTATE ���淶�������ַ�������ͬ PDO �������������ǵı��ش���ӳ��Ϊ�ʵ��� SQLSTATE ���롣PDO::errorCode() ��������һ�������� SQLSTATE �롣�����Ҫ����˴����ϸ����Ϣ��PDO ���ṩ��һ�� PDO::errorInfo() ����������һ������ SQLSTATE �롢�ض������������Լ��������Ĵ����ַ��������顣
Example #1 ���� PDO ʵ�������ô���ģʽ
<?php
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
try {
$dbh = new PDO($dsn, $user, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
Note:
���ܵ�ǰ�Ƿ�������
PDO::ATTR_ERRMODE
���������ʧ�ܣ�PDO::__construct() �������׳�һ�� PDOException �쳣��δ�����쳣�������ġ�
Example #2 ���� PDO ʵ�����ڹ��캯�������ô���ģʽ
<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'googleguy';
$password = 'googleguy';
/*
ʹ�� try/catch Χ�ƹ��캯����Ȼ��Ч����ʹ������ ERRMODE Ϊ WARNING��
��Ϊ�������ʧ�ܣ�PDO::__construct �������׳�һ�� PDOException �쳣��
*/
try {
$dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
exit;
}
// ���ォ���� PDO �׳�һ�� E_WARNING ����Ĵ������� һ���쳣 �������ݱ�����ʱ��
$dbh->query("SELECT wrongcolumn FROM wrongtable");
?>
�������̻������
Warning: PDO::query(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.wrongtable' doesn't exist in /tmp/pdo_test.php on line 18