From: Georg Richter Date: Mon, 20 Dec 2004 16:39:14 +0000 (+0000) Subject: prevent type conversion during mysql_stmt_execute for NULL variables X-Git-Tag: RELEASE_0_2~496 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5c50f0bb30892e7e5f07d1a5dab362948af9c56f;p=php prevent type conversion during mysql_stmt_execute for NULL variables --- diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index 4e3dda9d3f..b756184b54 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -539,24 +539,24 @@ PHP_FUNCTION(mysqli_stmt_execute) for (i = 0; i < stmt->param.var_cnt; i++) { if (stmt->param.vars[i]) { - stmt->param.is_null[i] = (stmt->param.vars[i]->type == IS_NULL); - - switch (stmt->stmt->params[i].buffer_type) { - case MYSQL_TYPE_VAR_STRING: - convert_to_string_ex(&stmt->param.vars[i]); - stmt->stmt->params[i].buffer = Z_STRVAL_PP(&stmt->param.vars[i]); - stmt->stmt->params[i].buffer_length = strlen(Z_STRVAL_PP(&stmt->param.vars[i])); - break; - case MYSQL_TYPE_DOUBLE: - convert_to_double_ex(&stmt->param.vars[i]); - stmt->stmt->params[i].buffer = (gptr)&Z_LVAL_PP(&stmt->param.vars[i]); - break; - case MYSQL_TYPE_LONG: - convert_to_long_ex(&stmt->param.vars[i]); - stmt->stmt->params[i].buffer = (gptr)&Z_LVAL_PP(&stmt->param.vars[i]); - break; - default: - break; + if ( !(stmt->param.is_null[i] = (stmt->param.vars[i]->type == IS_NULL)) ) { + switch (stmt->stmt->params[i].buffer_type) { + case MYSQL_TYPE_VAR_STRING: + convert_to_string_ex(&stmt->param.vars[i]); + stmt->stmt->params[i].buffer = Z_STRVAL_PP(&stmt->param.vars[i]); + stmt->stmt->params[i].buffer_length = strlen(Z_STRVAL_PP(&stmt->param.vars[i])); + break; + case MYSQL_TYPE_DOUBLE: + convert_to_double_ex(&stmt->param.vars[i]); + stmt->stmt->params[i].buffer = (gptr)&Z_LVAL_PP(&stmt->param.vars[i]); + break; + case MYSQL_TYPE_LONG: + convert_to_long_ex(&stmt->param.vars[i]); + stmt->stmt->params[i].buffer = (gptr)&Z_LVAL_PP(&stmt->param.vars[i]); + break; + default: + break; + } } } }