����ͨ�� PDO �������ˣ��ڿ�ʼ���в�ѯǰ����������� PDO ����ι�������ġ�����֧���Ĵ����ԣ�ACID����ԭ���ԣ�Atomicity����һ���ԣ�Consistency���������ԣ�Isolation���Լ��־��ԣ�Durability����ͨ�ؽ�����һ��������ִ�е��κβ�������ʹ�Ƿֽ�ִ�еģ�Ҳ�ܱ�֤��ȫ��Ӧ�������ݿ⣬�����ύʱ�����ܵ������������ӵĸ��š��������Ҳ���Ը��������Զ����������軹û���ύ������ʹ���ڽű��д������������ס�
����ͨ����ͨ����һ������"����"����Ȼ��ʹ֮ͬʱ��Ч��ʵ�ֵģ��������ĺô��ǿ��Դ����ṩ��Щ���ĵ�Ч�ʡ����仰˵���������ʹ�ű����죬���ҿ��ܸ���׳��������Ҫ��ȷ��ʹ��������ܻ�������ĺô�����
���ҵ��ǣ�����ÿ�����ݿⶼ֧��������˵���һ�δ�����ʱ��PDO ��Ҫ����ν��"�Զ��ύ"ģʽ�����С��Զ��ύģʽ��ζ�ţ�������ݿ�֧�֣����е�ÿ����ѯ�������Լ�����ʽ����������ݿⲻ֧��������û�С������Ҫһ������������� PDO::beginTransaction() ����������������ײ�������֧���������׳�һ�� PDOException �쳣�����ܴ����������������ģ��ⶼ��һ�����صĴ���״̬����һ����ʼ�������� PDO::commit() �� PDO::rollBack()����ɣ���ȡ���������еĴ����Ƿ����гɹ���
PDO �������������Ƿ�������������������ijЩ����ʱ������ζ�������ã������ݿ�����������ȥ����һ������PDO::beginTransaction() ����Ȼ���� TRUE
����û�д���
������ MySQL ���ݿ�� MyISAM ���ݱ���ʹ���������һ���ܺõ����ӡ�
���ű����������Ӽ������ر�ʱ���������һ��δ��ɵ�������ô PDO ���Զ��ع����������ְ�ȫ��ʩ�������ڽű�������ֹʱ������ֲ�һ�µ����——���û����ʽ���ύ������ô������ij���ط������ˣ�����ִ�лع�����֤���ݰ�ȫ��
ֻ��ͨ�� PDO::beginTransaction() ����һ������ſ��ܷ����Զ��ع�������ֶ�����һ����ѯ�������� �� PDO ��֪�����Ӷ��ڱ�Ҫʱ���ܽ��лع���
Example #1 ��������ִ��������
�����������У�����Ϊ��Ա������һ����Ŀ������һ��Ϊ23��ID�����˵ǼǴ��˵Ļ�������֮�⣬����Ҫ��¼���Ĺ��ʡ��������·ֱ���������ܼ���ͨ������� PDO::beginTransaction() ��PDO::commit() �����У����Ա�֤�ڸ������֮ǰ����������������Щ���ġ���������˴���catch ��ع������������������������и��ģ������һ��������Ϣ��
<?php
try {
$dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
array(PDO::ATTR_PERSISTENT => true));
echo "Connected\n";
} catch (Exception $e) {
die("Unable to connect: " . $e->getMessage());
}
try {
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->beginTransaction();
$dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
$dbh->exec("insert into salarychange (id, amount, changedate)
values (23, 50000, NOW())");
$dbh->commit();
} catch (Exception $e) {
$dbh->rollBack();
echo "Failed: " . $e->getMessage();
}
?>
�����������������и��ģ�Ҳ���Է������ӵIJ�ѯ����ȡ���ݣ�������ʹ����Щ��Ϣ����������ĸ��ĺͲ�ѯ��������ʱ�����Ա�֤�������ڲ������е������������ġ������һ���Ķ������������Ϣ���ɲο����ݿ�����ṩ���ĵ���