diff options
author | Adam Baratz <adambaratz@php.net> | 2017-01-27 18:38:56 -0500 |
---|---|---|
committer | Adam Baratz <adambaratz@php.net> | 2017-01-27 18:38:56 -0500 |
commit | 9e18f1d4aff855161eeb0de2f4979a2e7eff7175 (patch) | |
tree | 9568b090e10f337464e3c5a36ae7d62d77093e7b | |
parent | 147a3dd379c5d749346c608936914ea828ee3bc0 (diff) | |
download | php-git-9e18f1d4aff855161eeb0de2f4979a2e7eff7175.tar.gz |
Expose DB-Library version as \PDO::DBLIB_ATTR_VERSION attribute on \PDO instance
-rw-r--r-- | ext/pdo_dblib/dblib_driver.c | 4 | ||||
-rw-r--r-- | ext/pdo_dblib/pdo_dblib.c | 1 | ||||
-rw-r--r-- | ext/pdo_dblib/php_pdo_dblib_int.h | 1 | ||||
-rw-r--r-- | ext/pdo_dblib/tests/dbversion.phpt | 17 |
4 files changed, 23 insertions, 0 deletions
diff --git a/ext/pdo_dblib/dblib_driver.c b/ext/pdo_dblib/dblib_driver.c index cff6aea816..565b4b2ca8 100644 --- a/ext/pdo_dblib/dblib_driver.c +++ b/ext/pdo_dblib/dblib_driver.c @@ -281,6 +281,10 @@ static int dblib_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_valu ZVAL_BOOL(return_value, ((pdo_dblib_db_handle *)dbh->driver_data)->stringify_uniqueidentifier); break; + case PDO_DBLIB_ATTR_VERSION: + ZVAL_STRING(return_value, dbversion()); + break; + default: return 0; } diff --git a/ext/pdo_dblib/pdo_dblib.c b/ext/pdo_dblib/pdo_dblib.c index 270a3c36d1..1732cd75f9 100644 --- a/ext/pdo_dblib/pdo_dblib.c +++ b/ext/pdo_dblib/pdo_dblib.c @@ -194,6 +194,7 @@ PHP_MINIT_FUNCTION(pdo_dblib) REGISTER_PDO_CLASS_CONST_LONG("DBLIB_ATTR_CONNECTION_TIMEOUT", (long) PDO_DBLIB_ATTR_CONNECTION_TIMEOUT); REGISTER_PDO_CLASS_CONST_LONG("DBLIB_ATTR_QUERY_TIMEOUT", (long) PDO_DBLIB_ATTR_QUERY_TIMEOUT); REGISTER_PDO_CLASS_CONST_LONG("DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER", (long) PDO_DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER); + REGISTER_PDO_CLASS_CONST_LONG("DBLIB_ATTR_VERSION", (long) PDO_DBLIB_ATTR_VERSION); if (FAIL == dbinit()) { return FAILURE; diff --git a/ext/pdo_dblib/php_pdo_dblib_int.h b/ext/pdo_dblib/php_pdo_dblib_int.h index df17e7ebdd..7eb6b1d9a1 100644 --- a/ext/pdo_dblib/php_pdo_dblib_int.h +++ b/ext/pdo_dblib/php_pdo_dblib_int.h @@ -148,6 +148,7 @@ enum { PDO_DBLIB_ATTR_CONNECTION_TIMEOUT = PDO_ATTR_DRIVER_SPECIFIC, PDO_DBLIB_ATTR_QUERY_TIMEOUT, PDO_DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER, + PDO_DBLIB_ATTR_VERSION, }; #endif diff --git a/ext/pdo_dblib/tests/dbversion.phpt b/ext/pdo_dblib/tests/dbversion.phpt new file mode 100644 index 0000000000..7575d5c45b --- /dev/null +++ b/ext/pdo_dblib/tests/dbversion.phpt @@ -0,0 +1,17 @@ +--TEST-- +PDO_DBLIB: \PDO::DBLIB_ATTR_VERSION exposes a string +--SKIPIF-- +<?php +if (!extension_loaded('pdo_dblib')) die('skip not loaded'); +require __DIR__ . '/config.inc'; +?> +--FILE-- +<?php +require __DIR__ . '/config.inc'; + +$version = $db->getAttribute(PDO::DBLIB_ATTR_VERSION); +var_dump(is_string($version) && strlen($version)); + +?> +--EXPECT-- +bool(true) |