summaryrefslogtreecommitdiff
path: root/ext/pdo/pdo_dbh.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pdo/pdo_dbh.c')
-rwxr-xr-xext/pdo/pdo_dbh.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c
index bb1f5bcfe..ac124370b 100755
--- a/ext/pdo/pdo_dbh.c
+++ b/ext/pdo/pdo_dbh.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pdo_dbh.c 293036 2010-01-03 09:23:27Z sebastian $ */
+/* $Id: pdo_dbh.c 300464 2010-06-15 11:13:20Z iliaa $ */
/* The PDO Database Handle Class */
@@ -683,6 +683,21 @@ 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;
+
+ RETURN_LONG(dbh->in_txn);
+}
+/* }}} */
+
static int pdo_dbh_attribute_set(pdo_dbh_t *dbh, long attr, zval *value TSRMLS_DC) /* {{{ */
{
@@ -851,6 +866,7 @@ static PHP_METHOD(PDO, setAttribute)
RETURN_FALSE;
}
+ PDO_DBH_CLEAR_ERR();
PDO_CONSTRUCT_CHECK;
if (pdo_dbh_attribute_set(dbh, attr, value TSRMLS_CC) != FAILURE) {
@@ -1245,6 +1261,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)