]> granicus.if.org Git - php/commitdiff
add input/output parameter type flag
authorWez Furlong <wez@php.net>
Mon, 7 Feb 2005 01:12:49 +0000 (01:12 +0000)
committerWez Furlong <wez@php.net>
Mon, 7 Feb 2005 01:12:49 +0000 (01:12 +0000)
ext/pdo/pdo.c
ext/pdo/pdo_stmt.c
ext/pdo/php_pdo_driver.h

index 37ec230803afbaa736f52cb0520f5a10a0ffe627..d8fa74c411a0f28730f23a91e065dd53c48e0b63 100755 (executable)
@@ -222,6 +222,7 @@ PHP_MINIT_FUNCTION(pdo)
        REGISTER_LONG_CONSTANT("PDO_PARAM_STR",  (long)PDO_PARAM_STR,   CONST_CS|CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("PDO_PARAM_LOB",  (long)PDO_PARAM_LOB,   CONST_CS|CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("PDO_PARAM_STMT", (long)PDO_PARAM_STMT,  CONST_CS|CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("PDO_PARAM_INPUT_OUTPUT", (long)PDO_PARAM_INPUT_OUTPUT,  CONST_CS|CONST_PERSISTENT);
 
        REGISTER_LONG_CONSTANT("PDO_FETCH_LAZY", (long)PDO_FETCH_LAZY,  CONST_CS|CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("PDO_FETCH_ASSOC",(long)PDO_FETCH_ASSOC, CONST_CS|CONST_PERSISTENT);
index b88c43ee0619d81e861c1daf7681137f060e0cc5..fe0ea33cd0f799acbfa1104881cd93caa639d02f 100755 (executable)
@@ -214,7 +214,7 @@ static int really_register_bound_param(struct pdo_bound_param_data *param, pdo_s
                }
        }
 
-       if (param->param_type == PDO_PARAM_STR && param->max_value_len <= 0) {
+       if (PDO_PARAM_TYPE(param->param_type) == PDO_PARAM_STR && param->max_value_len <= 0) {
                convert_to_string(param->parameter);
        }
 
@@ -379,7 +379,7 @@ static inline void fetch_value(pdo_stmt_t *stmt, zval *dest, int colno TSRMLS_DC
 
        stmt->methods->get_col(stmt, colno, &value, &value_len, &caller_frees TSRMLS_CC);
 
-       switch (col->param_type) {
+       switch (PDO_PARAM_TYPE(col->param_type)) {
                case PDO_PARAM_INT:
                        if (value && value_len == sizeof(long)) {
                                ZVAL_LONG(dest, *(long*)value);
index 4644ff8c63082e5ea865ad55e3dbe362a297763e..e5c0a61012d2a25c9aab2c1367c0f081ed7497e4 100755 (executable)
@@ -58,9 +58,15 @@ enum pdo_param_type {
        PDO_PARAM_STMT, /* hierarchical result set */
 
        /* get_col ptr should point to a zend_bool */
-       PDO_PARAM_BOOL
+       PDO_PARAM_BOOL,
+
+
+       /* magic flag to denote a parameter as being input/output */
+       PDO_PARAM_INPUT_OUTPUT = 0x80000000
 };
 
+#define PDO_PARAM_TYPE(x)              ((x) & ~PDO_PARAM_INPUT_OUTPUT)
+
 enum pdo_fetch_type {
        PDO_FETCH_USE_DEFAULT,
        PDO_FETCH_LAZY,