summaryrefslogtreecommitdiff
path: root/ext/pdo_dblib/dblib_driver.c
diff options
context:
space:
mode:
authorGeorge Peter Banyard <girgias@php.net>2021-03-15 15:30:58 +0000
committerGeorge Peter Banyard <girgias@php.net>2021-03-17 00:58:01 +0000
commitc465462e912eae73d1e0407f2d2cb815f40f1c13 (patch)
tree9abd9996e7f4d4e2128a57cf41158b86a3300796 /ext/pdo_dblib/dblib_driver.c
parent32fb9b6fd17f6f5b965ac8b2fb69cbfda7603416 (diff)
downloadphp-git-c465462e912eae73d1e0407f2d2cb815f40f1c13.tar.gz
Use standard PDO way for fetching integer attribute values
Diffstat (limited to 'ext/pdo_dblib/dblib_driver.c')
-rw-r--r--ext/pdo_dblib/dblib_driver.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/ext/pdo_dblib/dblib_driver.c b/ext/pdo_dblib/dblib_driver.c
index ae45da6beb..b65694c045 100644
--- a/ext/pdo_dblib/dblib_driver.c
+++ b/ext/pdo_dblib/dblib_driver.c
@@ -273,22 +273,35 @@ zend_string *dblib_handle_last_id(pdo_dbh_t *dbh, const zend_string *name)
static bool dblib_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
{
pdo_dblib_db_handle *H = (pdo_dblib_db_handle *)dbh->driver_data;
+ zend_long lval;
switch(attr) {
case PDO_ATTR_DEFAULT_STR_PARAM:
- H->assume_national_character_set_strings = zval_get_long(val) == PDO_PARAM_STR_NATL ? 1 : 0;
+ if (!pdo_get_long_param(&lval, val)) {
+ return false;
+ }
+ H->assume_national_character_set_strings = lval == PDO_PARAM_STR_NATL ? 1 : 0;
return true;
case PDO_ATTR_TIMEOUT:
case PDO_DBLIB_ATTR_QUERY_TIMEOUT:
- return SUCCEED == dbsettime(zval_get_long(val));
+ if (!pdo_get_long_param(&lval, val)) {
+ return false;
+ }
+ return SUCCEED == dbsettime(lval);
case PDO_DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER:
- H->stringify_uniqueidentifier = zval_get_long(val);
+ if (!pdo_get_long_param(&lval, val)) {
+ return false;
+ }
+ H->stringify_uniqueidentifier = lval;
return true;
case PDO_DBLIB_ATTR_SKIP_EMPTY_ROWSETS:
H->skip_empty_rowsets = zval_is_true(val);
return true;
case PDO_DBLIB_ATTR_DATETIME_CONVERT:
- H->datetime_convert = zval_get_long(val);
+ if (!pdo_get_long_param(&lval, val)) {
+ return false;
+ }
+ H->datetime_convert = lval;
return true;
default:
return false;