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
commit90906a91e9d719a1d25a69ef4c2dc305d019020b (patch)
tree6869646005cef8f207d6a07855a434c5318930f5 /ext/pdo
parent748dd204761d707461e8169fec43fa317ccba463 (diff)
downloadphp-git-90906a91e9d719a1d25a69ef4c2dc305d019020b.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 37edf20593..0924ba2b68 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 06d09b2d17..4c668734ec 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;
};
/* }}} */