PARAM_ZVAL with a STR result should be treated the same way as
PARAM_STR in this regard.
case PDO_PARAM_ZVAL:
if (value && value_len == sizeof(zval)) {
ZVAL_COPY_VALUE(dest, (zval *)value);
+
+ if (Z_TYPE_P(dest) == IS_STRING && Z_STRLEN_P(dest) == 0
+ && stmt->dbh->oracle_nulls == PDO_NULL_EMPTY_STRING) {
+ zval_ptr_dtor_str(dest);
+ ZVAL_NULL(dest);
+ }
} else {
ZVAL_NULL(dest);
}
["z"]=>
NULL
["a"]=>
- string(0) ""
+ NULL
["b"]=>
string(1) " "
["c"]=>
- string(0) ""
+ NULL
["d"]=>
string(2) " d"
["e"]=>
["z"]=>
NULL
["a"]=>
- string(0) ""
+ NULL
["b"]=>
string(1) " "
["c"]=>
- string(0) ""
+ NULL
["d"]=>
string(2) " d"
["e"]=>