�����������

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_ERRMODEPDO::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