summaryrefslogtreecommitdiff
path: root/ext/pdo_dblib/dblib_stmt.c
diff options
context:
space:
mode:
authorAdam Baratz <adambaratz@php.net>2016-09-13 16:26:38 -0400
committerAdam Baratz <adambaratz@php.net>2016-09-13 16:32:37 -0400
commit91c49c4ab0632116760d9beeddb0ec26ddc61ca7 (patch)
tree40cc101e01bded33daf234be7b218d110ccc5d64 /ext/pdo_dblib/dblib_stmt.c
parent9cdf2042bd3e1a34c15e120cba85a76ef54eb854 (diff)
downloadphp-git-91c49c4ab0632116760d9beeddb0ec26ddc61ca7.tar.gz
Handle SQLDECIMAL/SQLNUMERIC types, which are used by later TDS versions
Diffstat (limited to 'ext/pdo_dblib/dblib_stmt.c')
-rw-r--r--ext/pdo_dblib/dblib_stmt.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/ext/pdo_dblib/dblib_stmt.c b/ext/pdo_dblib/dblib_stmt.c
index 8ec4f782fd..311d856d55 100644
--- a/ext/pdo_dblib/dblib_stmt.c
+++ b/ext/pdo_dblib/dblib_stmt.c
@@ -266,6 +266,11 @@ static int pdo_dblib_stmt_get_col(pdo_stmt_t *stmt, int colno, char **ptr,
if (data_len != 0 || data != NULL) {
if (stmt->dbh->stringify) {
switch (coltype) {
+ case SQLDECIMAL:
+ case SQLNUMERIC:
+ case SQLMONEY:
+ case SQLMONEY4:
+ case SQLMONEYN:
case SQLFLT4:
case SQLFLT8:
case SQLINT4:
@@ -361,18 +366,16 @@ static int pdo_dblib_stmt_get_col(pdo_stmt_t *stmt, int colno, char **ptr,
break;
}
+ case SQLDECIMAL:
+ case SQLNUMERIC:
case SQLMONEY:
case SQLMONEY4:
case SQLMONEYN: {
- DBFLT8 money_value;
- dbconvert(NULL, coltype, data, 8, SQLFLT8, (LPBYTE)&money_value, -1);
+ DBFLT8 float_value;
+ dbconvert(NULL, coltype, data, 8, SQLFLT8, (LPBYTE)&float_value, -1);
zv = emalloc(sizeof(zval));
- ZVAL_DOUBLE(zv, money_value);
-
- if (stmt->dbh->stringify) {
- convert_to_string(zv);
- }
+ ZVAL_DOUBLE(zv, float_value);
break;
}