diff options
author | Danack <Danack@basereality.com> | 2015-03-15 15:03:03 +0000 |
---|---|---|
committer | Danack <Danack@basereality.com> | 2015-03-15 15:03:03 +0000 |
commit | d3267d0092a09eb3a0da2bd953ad21cf5bae325a (patch) | |
tree | 28e0e66131f23db6915e30f9751fa06936f42a0a | |
parent | 78ebf83ad3299bdb2617da60c9be68ce2cf33fb4 (diff) | |
download | php-git-d3267d0092a09eb3a0da2bd953ad21cf5bae325a.tar.gz |
Fixed PDO constructor to not return null.
-rw-r--r-- | ext/pdo/pdo_dbh.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c index de9a6abbdc..1796435c5f 100644 --- a/ext/pdo/pdo_dbh.c +++ b/ext/pdo/pdo_dbh.c @@ -208,9 +208,15 @@ static PHP_METHOD(PDO, dbh_constructor) zval *options = NULL; char alt_dsn[512]; int call_factory = 1; + zend_error_handling zeh; + int rv; - if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "s|s!s!a!", &data_source, &data_source_len, - &username, &usernamelen, &password, &passwordlen, &options)) { + zend_replace_error_handling(EH_THROW, pdo_exception_ce, &zeh TSRMLS_CC); + rv = zend_parse_parameters(ZEND_NUM_ARGS(), "s|s!s!a!", &data_source, &data_source_len, + &username, &usernamelen, &password, &passwordlen, &options); + zend_restore_error_handling(&zeh TSRMLS_CC); + + if (FAILURE == rv) { ZEND_CTOR_MAKE_NULL(); return; } |