summaryrefslogtreecommitdiff
path: root/ext/pdo/pdo_stmt.c
diff options
context:
space:
mode:
authorArd Biesheuvel <abies@php.net>2004-06-12 02:35:34 +0000
committerArd Biesheuvel <abies@php.net>2004-06-12 02:35:34 +0000
commit50ac5db2b410de9b9faadaed786929d48b189571 (patch)
tree27c4cbd8e89517abc2f203b2dcc6b1c76a5ff305 /ext/pdo/pdo_stmt.c
parent1e3854597cbbc8d91ce5904643f0cc04a55327a8 (diff)
downloadphp-git-50ac5db2b410de9b9faadaed786929d48b189571.tar.gz
Added double param type
Added param struct initialiser Reversed param parsing order (long <=> string)
Diffstat (limited to 'ext/pdo/pdo_stmt.c')
-rwxr-xr-xext/pdo/pdo_stmt.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c
index 9992633319..e34ffe0a3a 100755
--- a/ext/pdo/pdo_stmt.c
+++ b/ext/pdo/pdo_stmt.c
@@ -377,6 +377,16 @@ static inline void fetch_value(pdo_stmt_t *stmt, zval *dest, int colno TSRMLS_DC
ZVAL_STRINGL(dest, value, value_len, 1);
break;
}
+ case PDO_PARAM_INT:
+ if (value) {
+ ZVAL_LONG(dest, *(long*)value);
+ break;
+ }
+ case PDO_PARAM_DBL:
+ if (value) {
+ ZVAL_DOUBLE(dest, *(double*)value);
+ break;
+ }
default:
ZVAL_NULL(dest);
}
@@ -548,18 +558,16 @@ static PHP_METHOD(PDOStatement, fetchAll)
static int register_bound_param(INTERNAL_FUNCTION_PARAMETERS, pdo_stmt_t *stmt, int is_param)
{
- struct pdo_bound_param_data param = {0};
+ struct pdo_bound_param_data param = PDO_BOUND_PARAM_INIT;
- param.paramno = -1;
param.param_type = PDO_PARAM_STR;
- if (FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
- ZEND_NUM_ARGS() TSRMLS_CC, "sz|llz!",
- &param.name, &param.namelen, &param.parameter, &param.param_type,
- &param.max_value_len,
+ if (FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
+ "lz|llz!", &param.paramno, &param.parameter, &param.param_type, &param.max_value_len,
+ &param.driver_params)) {
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz|llz!", &param.name,
+ &param.namelen, &param.parameter, &param.param_type, &param.max_value_len,
&param.driver_params)) {
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lz|llz!", &param.paramno,
- &param.parameter, &param.param_type, &param.max_value_len, &param.driver_params)) {
return 0;
}
}