summaryrefslogtreecommitdiff
path: root/ext/pdo_dblib/dblib_driver.c
diff options
context:
space:
mode:
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;