Skip to content

Commit dd0795a

Browse files
committed
Merge branch 'PHP-7.1'
* PHP-7.1: Update news Fixed #74595 - ReflectionMethod::getParameters returns incorrect number of parameters
2 parents 372397f + 11b4f10 commit dd0795a

File tree

3 files changed

+63
-7
lines changed

3 files changed

+63
-7
lines changed

ext/mysqli/mysqli_fe.c

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,17 @@ ZEND_END_ARG_INFO()
261261
ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_query, 0, 0, 2)
262262
MYSQLI_ZEND_ARG_OBJ_INFO_LINK()
263263
ZEND_ARG_INFO(0, query)
264+
ZEND_ARG_INFO(0, resultmode)
265+
ZEND_END_ARG_INFO()
266+
267+
ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_multi_query, 0, 0, 1)
268+
MYSQLI_ZEND_ARG_OBJ_INFO_LINK()
269+
ZEND_ARG_INFO(0, query)
270+
ZEND_END_ARG_INFO()
271+
272+
ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_real_query, 0, 0, 1)
273+
MYSQLI_ZEND_ARG_OBJ_INFO_LINK()
274+
ZEND_ARG_INFO(0, query)
264275
ZEND_END_ARG_INFO()
265276

266277
ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_prepare, 0, 0, 2)
@@ -275,6 +286,19 @@ ZEND_END_ARG_INFO()
275286

276287
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_query, 0, 0, 1)
277288
ZEND_ARG_INFO(0, query)
289+
ZEND_ARG_INFO(0, resultmode)
290+
ZEND_END_ARG_INFO()
291+
292+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_prepare, 0, 0, 1)
293+
ZEND_ARG_INFO(0, query)
294+
ZEND_END_ARG_INFO()
295+
296+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_multi_query, 0, 0, 1)
297+
ZEND_ARG_INFO(0, query)
298+
ZEND_END_ARG_INFO()
299+
300+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_real_query, 0, 0, 1)
301+
ZEND_ARG_INFO(0, query)
278302
ZEND_END_ARG_INFO()
279303

280304
ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_options, 0, 0, 3)
@@ -442,7 +466,7 @@ const zend_function_entry mysqli_functions[] = {
442466
PHP_FE(mysqli_insert_id, arginfo_mysqli_only_link)
443467
PHP_FE(mysqli_kill, arginfo_mysqli_kill)
444468
PHP_FE(mysqli_more_results, arginfo_mysqli_only_link)
445-
PHP_FE(mysqli_multi_query, arginfo_mysqli_query)
469+
PHP_FE(mysqli_multi_query, arginfo_mysqli_multi_query)
446470
PHP_FE(mysqli_next_result, arginfo_mysqli_only_link)
447471
PHP_FE(mysqli_num_fields, arginfo_mysqli_only_result)
448472
PHP_FE(mysqli_num_rows, arginfo_mysqli_only_result)
@@ -456,7 +480,7 @@ const zend_function_entry mysqli_functions[] = {
456480
PHP_FE(mysqli_query, arginfo_mysqli_query)
457481
PHP_FE(mysqli_real_connect, arginfo_mysqli_real_connect)
458482
PHP_FE(mysqli_real_escape_string, arginfo_mysqli_real_escape_string)
459-
PHP_FE(mysqli_real_query, arginfo_mysqli_query)
483+
PHP_FE(mysqli_real_query, arginfo_mysqli_real_query)
460484
#if defined(MYSQLI_USE_MYSQLND)
461485
PHP_FE(mysqli_reap_async_query, arginfo_mysqli_only_link)
462486
#endif
@@ -542,7 +566,7 @@ const zend_function_entry mysqli_link_methods[] = {
542566
PHP_FALIAS(get_warnings, mysqli_get_warnings, arginfo_mysqli_no_params)
543567
PHP_FALIAS(init,mysqli_init_method, arginfo_mysqli_no_params)
544568
PHP_FALIAS(kill,mysqli_kill, arginfo_class_mysqli_kill)
545-
PHP_FALIAS(multi_query, mysqli_multi_query, arginfo_class_mysqli_query)
569+
PHP_FALIAS(multi_query, mysqli_multi_query, arginfo_class_mysqli_multi_query)
546570
PHP_FALIAS(__construct, mysqli_link_construct, arginfo_mysqli_connect)
547571
PHP_FALIAS(more_results, mysqli_more_results, arginfo_mysqli_no_params)
548572
PHP_FALIAS(next_result, mysqli_next_result, arginfo_mysqli_no_params)
@@ -551,15 +575,15 @@ const zend_function_entry mysqli_link_methods[] = {
551575
#if defined(MYSQLI_USE_MYSQLND)
552576
ZEND_FENTRY(poll, ZEND_FN(mysqli_poll), arginfo_mysqli_poll, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
553577
#endif
554-
PHP_FALIAS(prepare, mysqli_prepare, arginfo_class_mysqli_query)
578+
PHP_FALIAS(prepare, mysqli_prepare, arginfo_class_mysqli_prepare)
555579
PHP_FALIAS(query, mysqli_query, arginfo_class_mysqli_query)
556580
PHP_FALIAS(real_connect, mysqli_real_connect, arginfo_class_mysqli_real_connect)
557581
PHP_FALIAS(real_escape_string, mysqli_real_escape_string, arginfo_class_mysqli_real_escape_string)
558582
#if defined(MYSQLI_USE_MYSQLND)
559583
PHP_FALIAS(reap_async_query, mysqli_reap_async_query, arginfo_mysqli_no_params)
560584
#endif
561585
PHP_FALIAS(escape_string, mysqli_real_escape_string, arginfo_class_mysqli_real_escape_string)
562-
PHP_FALIAS(real_query, mysqli_real_query, arginfo_class_mysqli_query)
586+
PHP_FALIAS(real_query, mysqli_real_query, arginfo_class_mysqli_real_query)
563587
PHP_FALIAS(release_savepoint, mysqli_release_savepoint, arginfo_class_mysqli_release_savepoint)
564588
PHP_FALIAS(rollback, mysqli_rollback, arginfo_class_mysqli_rollback)
565589
PHP_FALIAS(savepoint, mysqli_savepoint, arginfo_class_mysqli_savepoint)
@@ -628,7 +652,7 @@ const zend_function_entry mysqli_stmt_methods[] = {
628652
PHP_FALIAS(send_long_data, mysqli_stmt_send_long_data, arginfo_class_mysqli_stmt_send_long_data)
629653
PHP_FALIAS(free_result, mysqli_stmt_free_result, arginfo_mysqli_no_params)
630654
PHP_FALIAS(reset, mysqli_stmt_reset, arginfo_mysqli_no_params)
631-
PHP_FALIAS(prepare, mysqli_stmt_prepare, arginfo_class_mysqli_query)
655+
PHP_FALIAS(prepare, mysqli_stmt_prepare, arginfo_class_mysqli_prepare)
632656
PHP_FALIAS(store_result, mysqli_stmt_store_result, arginfo_mysqli_no_params)
633657
#if defined(MYSQLI_USE_MYSQLND)
634658
PHP_FALIAS(get_result, mysqli_stmt_get_result, arginfo_mysqli_no_params)

ext/mysqli/tests/bug74595.phpt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
--TEST--
2+
Bug #74595 (ReflectionMethod::getParameters returns incorrect number of parameters)
3+
--SKIPIF--
4+
<?php
5+
require_once('skipif.inc');
6+
?>
7+
--FILE--
8+
<?php
9+
$class = new ReflectionClass('mysqli');
10+
$method = $class->getMethod('query');
11+
var_dump($method->getParameters());
12+
?>
13+
--EXPECTF--
14+
array(2) {
15+
[0]=>
16+
object(ReflectionParameter)#%d (1) {
17+
["name"]=>
18+
string(5) "query"
19+
}
20+
[1]=>
21+
object(ReflectionParameter)#%d (1) {
22+
["name"]=>
23+
string(10) "resultmode"
24+
}
25+
}

ext/mysqli/tests/mysqli_class_mysqli_reflection.phpt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -732,7 +732,7 @@ isInternal: yes
732732
isUserDefined: no
733733
returnsReference: no
734734
Modifiers: 256
735-
Number of Parameters: 1
735+
Number of Parameters: 2
736736
Number of Required Parameters: 1
737737

738738
Inspecting parameter 'query' of method 'query'
@@ -742,6 +742,13 @@ isPassedByReference: no
742742
isOptional: no
743743
isDefaultValueAvailable: no
744744

745+
Inspecting parameter 'resultmode' of method 'query'
746+
isArray: no
747+
allowsNull: no
748+
isPassedByReference: no
749+
isOptional: yes
750+
isDefaultValueAvailable: no
751+
745752
Inspecting method 'real_connect'
746753
isFinal: no
747754
isAbstract: no

0 commit comments

Comments
 (0)