diff options
Diffstat (limited to 'ext/pdo_sqlite')
-rw-r--r-- | ext/pdo_sqlite/sqlite_driver.c | 3 | ||||
-rw-r--r-- | ext/pdo_sqlite/tests/bug_64705.phpt | 17 |
2 files changed, 18 insertions, 2 deletions
diff --git a/ext/pdo_sqlite/sqlite_driver.c b/ext/pdo_sqlite/sqlite_driver.c index 120488e229..83ea2d6083 100644 --- a/ext/pdo_sqlite/sqlite_driver.c +++ b/ext/pdo_sqlite/sqlite_driver.c @@ -76,8 +76,7 @@ int _pdo_sqlite_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, const char *file, int li } if (!dbh->methods) { - zend_throw_exception_ex(php_pdo_get_exception(), einfo->errcode, "SQLSTATE[%s] [%d] %s", - *pdo_err, einfo->errcode, einfo->errmsg); + pdo_throw_exception(einfo->errcode, einfo->errmsg, pdo_err); } return einfo->errcode; diff --git a/ext/pdo_sqlite/tests/bug_64705.phpt b/ext/pdo_sqlite/tests/bug_64705.phpt new file mode 100644 index 0000000000..861a99fbd9 --- /dev/null +++ b/ext/pdo_sqlite/tests/bug_64705.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #64705 errorInfo property of PDOException is null when PDO::__construct() fails +--SKIPIF-- +<?php +if (!extension_loaded('pdo_sqlite')) print 'skip not loaded'; +?> +--FILE-- +<?php +$dsn = 'sqlite:./bug64705NonExistingDir/bug64705NonExistingDb'; +try { + $pdo = new \PDO($dsn, null, null); +} catch (\PDOException $e) { + var_dump(!empty($e->errorInfo) && is_array($e->errorInfo)); +} +?> +--EXPECTF-- +bool(true)
\ No newline at end of file |