summaryrefslogtreecommitdiff
path: root/ext/pdo_dblib/dblib_driver.c
diff options
context:
space:
mode:
authorfandrieu <fandrieu@gmail.com>2017-10-31 17:33:10 -0400
committerAdam Baratz <adambaratz@php.net>2017-10-31 17:52:59 -0400
commitb72af30a534fb3ff2f899f1561fd021bdbc832e1 (patch)
tree7ba563ec3fa9494535f0f6721e6f56d70c82409e /ext/pdo_dblib/dblib_driver.c
parent2ecfcdaf1b94868756cabbbb2c33276f823dafd7 (diff)
downloadphp-git-b72af30a534fb3ff2f899f1561fd021bdbc832e1.tar.gz
Fix #74243: allow locales.conf to drive datetime format
Add a driver attribute, PDO::DBLIB_ATTR_DATETIME_CONVERT, to control.
Diffstat (limited to 'ext/pdo_dblib/dblib_driver.c')
-rw-r--r--ext/pdo_dblib/dblib_driver.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/ext/pdo_dblib/dblib_driver.c b/ext/pdo_dblib/dblib_driver.c
index e8c010c563..f66e83734c 100644
--- a/ext/pdo_dblib/dblib_driver.c
+++ b/ext/pdo_dblib/dblib_driver.c
@@ -290,6 +290,9 @@ static int dblib_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
case PDO_DBLIB_ATTR_SKIP_EMPTY_ROWSETS:
H->skip_empty_rowsets = zval_is_true(val);
return 1;
+ case PDO_DBLIB_ATTR_DATETIME_CONVERT:
+ H->datetime_convert = zval_get_long(val);
+ return 1;
default:
return 0;
}
@@ -321,6 +324,10 @@ static int dblib_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_valu
ZVAL_BOOL(return_value, H->skip_empty_rowsets);
break;
+ case PDO_DBLIB_ATTR_DATETIME_CONVERT:
+ ZVAL_BOOL(return_value, H->datetime_convert);
+ break;
+
default:
return 0;
}
@@ -395,6 +402,7 @@ static int pdo_dblib_handle_factory(pdo_dbh_t *dbh, zval *driver_options)
H->assume_national_character_set_strings = 0;
H->stringify_uniqueidentifier = 0;
H->skip_empty_rowsets = 0;
+ H->datetime_convert = 0;
if (!H->login) {
goto cleanup;
@@ -418,6 +426,7 @@ static int pdo_dblib_handle_factory(pdo_dbh_t *dbh, zval *driver_options)
H->assume_national_character_set_strings = pdo_attr_lval(driver_options, PDO_ATTR_DEFAULT_STR_PARAM, 0) == PDO_PARAM_STR_NATL ? 1 : 0;
H->stringify_uniqueidentifier = pdo_attr_lval(driver_options, PDO_DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER, 0);
H->skip_empty_rowsets = pdo_attr_lval(driver_options, PDO_DBLIB_ATTR_SKIP_EMPTY_ROWSETS, 0);
+ H->datetime_convert = pdo_attr_lval(driver_options, PDO_DBLIB_ATTR_DATETIME_CONVERT, 0);
}
DBERRHANDLE(H->login, (EHANDLEFUNC) pdo_dblib_error_handler);