From: Ard Biesheuvel Date: Sat, 12 Jun 2004 02:35:34 +0000 (+0000) Subject: Added double param type X-Git-Tag: php-5.0.0~225 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=50ac5db2b410de9b9faadaed786929d48b189571;p=php Added double param type Added param struct initialiser Reversed param parsing order (long <=> string) --- 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!", - ¶m.name, ¶m.namelen, ¶m.parameter, ¶m.param_type, - ¶m.max_value_len, + if (FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, + "lz|llz!", ¶m.paramno, ¶m.parameter, ¶m.param_type, ¶m.max_value_len, + ¶m.driver_params)) { + if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz|llz!", ¶m.name, + ¶m.namelen, ¶m.parameter, ¶m.param_type, ¶m.max_value_len, ¶m.driver_params)) { - if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lz|llz!", ¶m.paramno, - ¶m.parameter, ¶m.param_type, ¶m.max_value_len, ¶m.driver_params)) { return 0; } } diff --git a/ext/pdo/php_pdo_driver.h b/ext/pdo/php_pdo_driver.h index a0f9ac16ab..63b2026466 100755 --- a/ext/pdo/php_pdo_driver.h +++ b/ext/pdo/php_pdo_driver.h @@ -43,6 +43,7 @@ enum pdo_param_type { PDO_PARAM_STR, PDO_PARAM_LOB, PDO_PARAM_STMT, /* hierarchical result set */ + PDO_PARAM_DBL, }; enum pdo_fetch_type { @@ -331,6 +332,8 @@ struct pdo_bound_param_data { int is_param; /* parameter or column ? */ }; +#define PDO_BOUND_PARAM_INIT { -1, NULL, 0 } + /* represents a prepared statement */ struct _pdo_stmt_t { /* driver specifics */