summaryrefslogtreecommitdiff
path: root/ext/pdo
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2010-06-10 12:11:19 +0000
committerIlia Alshanetsky <iliaa@php.net>2010-06-10 12:11:19 +0000
commit6ed1819bf4faaee1ef3650d59089c66181b1f8ba (patch)
tree73589a320ed398465b0e6d7507a64ce9680a965a /ext/pdo
parent743a2e29c1d876a500f6a175b4767545fde69f7c (diff)
downloadphp-git-6ed1819bf4faaee1ef3650d59089c66181b1f8ba.tar.gz
Added inTransaction() method to PDO, with specialized support for Postgres
Diffstat (limited to 'ext/pdo')
-rwxr-xr-xext/pdo/pdo_dbh.c20
-rwxr-xr-xext/pdo/php_pdo_driver.h1
2 files changed, 21 insertions, 0 deletions
diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c
index 1573290420..f50df54d48 100755
--- a/ext/pdo/pdo_dbh.c
+++ b/ext/pdo/pdo_dbh.c
@@ -683,6 +683,25 @@ static PHP_METHOD(PDO, rollBack)
}
/* }}} */
+/* {{{ proto bool PDO::inTransaction()
+ determine if inside a transaction */
+static PHP_METHOD(PDO, inTransaction)
+{
+ pdo_dbh_t *dbh = zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+ PDO_CONSTRUCT_CHECK;
+
+ if (!dbh->methods->in_transaction) {
+ RETURN_BOOL(dbh->in_txn);
+ }
+
+ RETURN_LONG(dbh->methods->in_transaction(dbh TSRMLS_CC));
+}
+/* }}} */
+
static int pdo_dbh_attribute_set(pdo_dbh_t *dbh, long attr, zval *value TSRMLS_DC) /* {{{ */
{
@@ -1246,6 +1265,7 @@ const zend_function_entry pdo_dbh_functions[] = {
PHP_ME(PDO, beginTransaction, arginfo_pdo__void, ZEND_ACC_PUBLIC)
PHP_ME(PDO, commit, arginfo_pdo__void, ZEND_ACC_PUBLIC)
PHP_ME(PDO, rollBack, arginfo_pdo__void, ZEND_ACC_PUBLIC)
+ PHP_ME(PDO, inTransaction, arginfo_pdo__void, ZEND_ACC_PUBLIC)
PHP_ME(PDO, setAttribute, arginfo_pdo_setattribute, ZEND_ACC_PUBLIC)
PHP_ME(PDO, exec, arginfo_pdo_exec, ZEND_ACC_PUBLIC)
PHP_ME(PDO, query, NULL, ZEND_ACC_PUBLIC)
diff --git a/ext/pdo/php_pdo_driver.h b/ext/pdo/php_pdo_driver.h
index a9396c5a26..92280063c3 100755
--- a/ext/pdo/php_pdo_driver.h
+++ b/ext/pdo/php_pdo_driver.h
@@ -310,6 +310,7 @@ struct pdo_dbh_methods {
pdo_dbh_check_liveness_func check_liveness;
pdo_dbh_get_driver_methods_func get_driver_methods;
pdo_dbh_request_shutdown persistent_shutdown;
+ pdo_dbh_txn_func in_transaction;
};
/* }}} */