Annotation of embedaddon/php/ext/pdo/README, revision 1.1
1.1 ! misho 1: $Id: README 242949 2007-09-26 15:44:16Z cvs2svn $
! 2:
! 3: PHP Data Objects
! 4: ================
! 5:
! 6: Concept: Data Access Abstraction
! 7:
! 8: Goals:
! 9:
! 10: 1/ Be light-weight
! 11: 2/ Provide common API for common database operations
! 12: 3/ Be performant
! 13: 4/ Keep majority of PHP specific stuff in the PDO core (such as persistent
! 14: resource management); drivers should only have to worry about getting the
! 15: data and not about PHP internals.
! 16:
! 17:
! 18: Transactions and autocommit
! 19: ===========================
! 20:
! 21: When you create a database handle, you *should* specify the autocommit
! 22: behaviour that you require. PDO will default to autocommit on.
! 23:
! 24: $dbh = new PDO("...", $user, $pass, array(PDO_ATTR_AUTOCOMMIT => true));
! 25:
! 26: When auto-commit is on, the driver will implicitly commit each query as it is
! 27: executed. This works fine for most simple tasks but can be significantly
! 28: slower when you are making a large number of udpates.
! 29:
! 30: $dbh = new PDO("...", $user, $pass, array(PDO_ATTR_AUTOCOMMIT => false));
! 31:
! 32: When auto-commit is off, you must then use $dbh->beginTransaction() to
! 33: initiate a transaction. When your work is done, you then call $dbh->commit()
! 34: or $dbh->rollBack() to persist or abort your changes respectively. Not all
! 35: databases support transactions.
! 36:
! 37: You can change the auto-commit mode at run-time:
! 38:
! 39: $dbh->setAttribute(PDO_ATTR_AUTOCOMMIT, false);
! 40:
! 41: Regardless of the error handling mode set on the database handle, if the
! 42: autocommit mode cannot be changed, an exception will be thrown.
! 43:
! 44: Some drivers will allow you to temporarily disable autocommit if you call
! 45: $dbh->beginTransaction(). When you commit() or rollBack() such a transaction,
! 46: the handle will switch back to autocommit mode again. If the mode could not
! 47: be changed, an exception will be raised, as noted above.
! 48:
! 49: When the database handle is closed or destroyed (or at request end for
! 50: persistent handles), the driver will implicitly rollBack(). It is your
! 51: responsibility to call commit() when you are done making changes and
! 52: autocommit is turned off.
! 53:
! 54: vim:tw=78:et
! 55:
! 56:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>