diff options
| -rw-r--r-- | ext/mysql/php_mysql.c | 14 | 
1 files changed, 9 insertions, 5 deletions
diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c index df0b91d925..d49710ffb6 100644 --- a/ext/mysql/php_mysql.c +++ b/ext/mysql/php_mysql.c @@ -1467,7 +1467,7 @@ PHP_FUNCTION(mysql_num_fields)  /* }}} */ -static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type) +static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type, int expected_args)  {  	zval **result, **arg2;  	MYSQL_RES *mysql_result; @@ -1478,6 +1478,10 @@ static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type)  	int i;  	PLS_FETCH(); +	if (ZEND_NUM_ARGS() > expected_args) { +		WRONG_PARAM_COUNT; +	} +  	switch (ZEND_NUM_ARGS()) {  		case 1:  			if (zend_get_parameters_ex(1, &result)==FAILURE) { @@ -1551,7 +1555,7 @@ static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type)     Get a result row as an enumerated array */  PHP_FUNCTION(mysql_fetch_row)  { -	php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_NUM); +	php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_NUM, 1);  }  /* }}} */ @@ -1560,7 +1564,7 @@ PHP_FUNCTION(mysql_fetch_row)     Fetch a result row as an object */  PHP_FUNCTION(mysql_fetch_object)  { -	php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_ASSOC); +	php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_ASSOC, 2);  	if (return_value->type==IS_ARRAY) {  		return_value->type=IS_OBJECT;  		return_value->value.obj.properties = return_value->value.ht; @@ -1574,7 +1578,7 @@ PHP_FUNCTION(mysql_fetch_object)     Fetch a result row as an array (associative, numeric or both)*/  PHP_FUNCTION(mysql_fetch_array)  { -	php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); +	php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0, 2);  }  /* }}} */ @@ -1583,7 +1587,7 @@ PHP_FUNCTION(mysql_fetch_array)     Fetch a result row as an associative array */  PHP_FUNCTION(mysql_fetch_assoc)  { -	php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_ASSOC); +	php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_ASSOC, 1);  }  /* }}} */  | 
