Annotation of embedaddon/php/ext/pdo/README, revision 1.1.1.2

1.1.1.2 ! misho       1: $Id$
1.1       misho       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>