mirror of
https://github.com/php/php-src.git
synced 2026-04-12 18:43:37 +02:00
This patch adds missing newlines, trims multiple redundant final newlines into a single one, and trims redundant leading newlines. According to POSIX, a line is a sequence of zero or more non-' <newline>' characters plus a terminating '<newline>' character. [1] Files should normally have at least one final newline character. C89 [2] and later standards [3] mention a final newline: "A source file that is not empty shall end in a new-line character, which shall not be immediately preceded by a backslash character." Although it is not mandatory for all files to have a final newline fixed, a more consistent and homogeneous approach brings less of commit differences issues and a better development experience in certain text editors and IDEs. [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206 [2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2 [3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
53 lines
1.9 KiB
Plaintext
53 lines
1.9 KiB
Plaintext
PHP Data Objects
|
|
================
|
|
|
|
Concept: Data Access Abstraction
|
|
|
|
Goals:
|
|
|
|
1/ Be light-weight
|
|
2/ Provide common API for common database operations
|
|
3/ Be performant
|
|
4/ Keep majority of PHP specific stuff in the PDO core (such as persistent
|
|
resource management); drivers should only have to worry about getting the
|
|
data and not about PHP internals.
|
|
|
|
|
|
Transactions and autocommit
|
|
===========================
|
|
|
|
When you create a database handle, you *should* specify the autocommit
|
|
behaviour that you require. PDO will default to autocommit on.
|
|
|
|
$dbh = new PDO("...", $user, $pass, array(PDO_ATTR_AUTOCOMMIT => true));
|
|
|
|
When auto-commit is on, the driver will implicitly commit each query as it is
|
|
executed. This works fine for most simple tasks but can be significantly
|
|
slower when you are making a large number of udpates.
|
|
|
|
$dbh = new PDO("...", $user, $pass, array(PDO_ATTR_AUTOCOMMIT => false));
|
|
|
|
When auto-commit is off, you must then use $dbh->beginTransaction() to
|
|
initiate a transaction. When your work is done, you then call $dbh->commit()
|
|
or $dbh->rollBack() to persist or abort your changes respectively. Not all
|
|
databases support transactions.
|
|
|
|
You can change the auto-commit mode at run-time:
|
|
|
|
$dbh->setAttribute(PDO_ATTR_AUTOCOMMIT, false);
|
|
|
|
Regardless of the error handling mode set on the database handle, if the
|
|
autocommit mode cannot be changed, an exception will be thrown.
|
|
|
|
Some drivers will allow you to temporarily disable autocommit if you call
|
|
$dbh->beginTransaction(). When you commit() or rollBack() such a transaction,
|
|
the handle will switch back to autocommit mode again. If the mode could not
|
|
be changed, an exception will be raised, as noted above.
|
|
|
|
When the database handle is closed or destroyed (or at request end for
|
|
persistent handles), the driver will implicitly rollBack(). It is your
|
|
responsibility to call commit() when you are done making changes and
|
|
autocommit is turned off.
|
|
|
|
vim:tw=78:et
|