diff options
Diffstat (limited to 'ext/mysqli')
25 files changed, 115 insertions, 154 deletions
diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c index 928ef8ea76..a007bc0e33 100644 --- a/ext/mysqli/mysqli.c +++ b/ext/mysqli/mysqli.c @@ -70,7 +70,7 @@ zend_class_entry *mysqli_warning_class_entry; zend_class_entry *mysqli_exception_class_entry; -typedef int (*mysqli_read_t)(mysqli_object *obj, zval *rv, zend_bool quiet); +typedef int (*mysqli_read_t)(mysqli_object *obj, zval *rv, bool quiet); typedef int (*mysqli_write_t)(mysqli_object *obj, zval *newval); typedef struct _mysqli_prop_handler { @@ -277,7 +277,7 @@ static void mysqli_warning_free_storage(zend_object *object) /* }}} */ /* {{{ mysqli_read_na */ -static int mysqli_read_na(mysqli_object *obj, zval *retval, zend_bool quiet) +static int mysqli_read_na(mysqli_object *obj, zval *retval, bool quiet) { if (!quiet) { zend_throw_error(NULL, "Cannot read property"); @@ -656,7 +656,7 @@ PHP_MINIT_FUNCTION(mysqli) REGISTER_LONG_CONSTANT("MYSQLI_OPT_NET_CMD_BUFFER_SIZE", MYSQLND_OPT_NET_CMD_BUFFER_SIZE, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("MYSQLI_OPT_NET_READ_BUFFER_SIZE", MYSQLND_OPT_NET_READ_BUFFER_SIZE, CONST_CS | CONST_PERSISTENT); #endif -#ifdef MYSQLND_STRING_TO_INT_CONVERSION +#ifdef MYSQLI_USE_MYSQLND REGISTER_LONG_CONSTANT("MYSQLI_OPT_INT_AND_FLOAT_NATIVE", MYSQLND_OPT_INT_AND_FLOAT_NATIVE, CONST_CS | CONST_PERSISTENT); #endif #if MYSQL_VERSION_ID < 80000 || MYSQL_VERSION_ID >= 100000 || defined(MYSQLI_USE_MYSQLND) @@ -805,6 +805,8 @@ PHP_MINIT_FUNCTION(mysqli) REGISTER_LONG_CONSTANT("MYSQLI_REFRESH_HOSTS", REFRESH_HOSTS, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("MYSQLI_REFRESH_STATUS", REFRESH_STATUS, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("MYSQLI_REFRESH_THREADS", REFRESH_THREADS, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("MYSQLI_REFRESH_REPLICA", REFRESH_SLAVE, CONST_CS | CONST_PERSISTENT); + /* temporarily for backward compatibility */ REGISTER_LONG_CONSTANT("MYSQLI_REFRESH_SLAVE", REFRESH_SLAVE, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("MYSQLI_REFRESH_MASTER", REFRESH_MASTER, CONST_CS | CONST_PERSISTENT); #ifdef REFRESH_BACKUP_LOG @@ -1130,7 +1132,7 @@ void php_mysqli_fetch_into_hash_aux(zval *return_value, MYSQL_RES * result, zend } } #else - mysqlnd_fetch_into(result, ((fetchtype & MYSQLI_NUM)? MYSQLND_FETCH_NUM:0) | ((fetchtype & MYSQLI_ASSOC)? MYSQLND_FETCH_ASSOC:0), return_value, MYSQLND_MYSQLI); + mysqlnd_fetch_into(result, ((fetchtype & MYSQLI_NUM)? MYSQLND_FETCH_NUM:0) | ((fetchtype & MYSQLI_ASSOC)? MYSQLND_FETCH_ASSOC:0), return_value); #endif } /* }}} */ diff --git a/ext/mysqli/mysqli.stub.php b/ext/mysqli/mysqli.stub.php index 9326bbd915..0fa4e194b7 100644 --- a/ext/mysqli/mysqli.stub.php +++ b/ext/mysqli/mysqli.stub.php @@ -340,13 +340,11 @@ class mysqli_result implements IteratorAggregate */ public function fetch_field_direct(int $index) {} -#if defined(MYSQLI_USE_MYSQLND) /** * @return array * @alias mysqli_fetch_all */ public function fetch_all(int $mode = MYSQLI_NUM) {} -#endif /** * @return array|null|false @@ -457,13 +455,13 @@ class mysqli_stmt * @alias mysqli_stmt_more_results */ public function more_results() {} +#endif /** * @return bool * @alias mysqli_stmt_next_result */ public function next_result() {} -#endif /** * @return int|string @@ -573,9 +571,7 @@ function mysqli_fetch_field_direct(mysqli_result $result, int $index): object|fa function mysqli_fetch_lengths(mysqli_result $result): array|false {} -#if defined(MYSQLI_USE_MYSQLND) function mysqli_fetch_all(mysqli_result $result, int $mode = MYSQLI_NUM): array {} -#endif function mysqli_fetch_array(mysqli_result $result, int $mode = MYSQLI_BOTH): array|null|false {} @@ -726,9 +722,9 @@ function mysqli_stmt_insert_id(mysqli_stmt $statement): int|string {} #if defined(MYSQLI_USE_MYSQLND) function mysqli_stmt_more_results(mysqli_stmt $statement): bool {} +#endif function mysqli_stmt_next_result(mysqli_stmt $statement): bool {} -#endif function mysqli_stmt_num_rows(mysqli_stmt $statement): int|string {} diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index e8f25c310a..b968f73567 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -71,7 +71,7 @@ mysqli_escape_string_for_tx_name_in_comment(const char * const name) { char * ret = NULL; if (name) { - zend_bool warned = FALSE; + bool warned = FALSE; const char * p_orig = name; char * p_copy; p_copy = ret = emalloc(strlen(name) + 1 + 2 + 2 + 1); /* space, open, close, NullS */ @@ -107,7 +107,7 @@ mysqli_escape_string_for_tx_name_in_comment(const char * const name) /* }}} */ /* {{{ mysqli_commit_or_rollback_libmysql */ -static int mysqli_commit_or_rollback_libmysql(MYSQL * conn, zend_bool commit, const uint32_t mode, const char * const name) +static int mysqli_commit_or_rollback_libmysql(MYSQL * conn, bool commit, const uint32_t mode, const char * const name) { int ret; smart_str tmp_str = {0}; @@ -161,7 +161,7 @@ PHP_FUNCTION(mysqli_autocommit) { MY_MYSQL *mysql; zval *mysql_link; - zend_bool automode; + bool automode; if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Ob", &mysql_link, mysqli_link_class_entry, &automode) == FAILURE) { RETURN_THROWS(); @@ -858,12 +858,12 @@ PHP_FUNCTION(mysqli_stmt_execute) stmt->stmt->params[i].buffer_length = Z_STRLEN_P(param); break; case MYSQL_TYPE_DOUBLE: - convert_to_double_ex(param); + convert_to_double(param); stmt->stmt->params[i].buffer = &Z_DVAL_P(param); break; case MYSQL_TYPE_LONGLONG: case MYSQL_TYPE_LONG: - convert_to_long_ex(param); + convert_to_long(param); stmt->stmt->params[i].buffer = &Z_LVAL_P(param); break; default: @@ -1057,7 +1057,7 @@ void mysqli_stmt_fetch_mysqlnd(INTERNAL_FUNCTION_PARAMETERS) { MY_STMT *stmt; zval *mysql_stmt; - zend_bool fetched_anything; + bool fetched_anything; if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) { RETURN_THROWS(); @@ -1108,7 +1108,7 @@ static void php_add_field_properties(zval *value, const MYSQL_FIELD *field) */ add_property_string(value, "catalog", "def"); - add_property_long(value, "max_length", field->max_length); + add_property_long(value, "max_length", 0); add_property_long(value, "length", field->length); add_property_long(value, "charsetnr", field->charsetnr); add_property_long(value, "flags", field->flags); @@ -1426,7 +1426,7 @@ PHP_FUNCTION(mysqli_info) /* }}} */ /* {{{ php_mysqli_init() */ -void php_mysqli_init(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_method) +void php_mysqli_init(INTERNAL_FUNCTION_PARAMETERS, bool is_method) { MYSQLI_RESOURCE *mysqli_resource; MY_MYSQL *mysql; @@ -1448,7 +1448,7 @@ void php_mysqli_init(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_method) We create always persistent, as if the user want to connect to p:somehost, we can't convert the handle then */ - if (!(mysql->mysql = mysqlnd_init(MYSQLND_CLIENT_KNOWS_RSET_COPY_DATA, TRUE))) + if (!(mysql->mysql = mysqlnd_init(MYSQLND_CLIENT_NO_FLAG, TRUE))) #endif { efree(mysql); @@ -1565,6 +1565,7 @@ PHP_FUNCTION(mysqli_stmt_more_results) RETURN_BOOL(mysqlnd_stmt_more_results(stmt->stmt)); } /* }}} */ +#endif /* {{{ read next result from multi_query */ PHP_FUNCTION(mysqli_stmt_next_result) { @@ -1583,7 +1584,6 @@ PHP_FUNCTION(mysqli_stmt_next_result) { RETURN_TRUE; } /* }}} */ -#endif /* {{{ Get number of fields in result */ PHP_FUNCTION(mysqli_num_fields) @@ -1627,9 +1627,7 @@ static int mysqli_options_get_option_zval_type(int option) #ifdef MYSQLI_USE_MYSQLND case MYSQLND_OPT_NET_CMD_BUFFER_SIZE: case MYSQLND_OPT_NET_READ_BUFFER_SIZE: -#ifdef MYSQLND_STRING_TO_INT_CONVERSION case MYSQLND_OPT_INT_AND_FLOAT_NATIVE: -#endif #endif /* MYSQLI_USE_MYSQLND */ case MYSQL_OPT_CONNECT_TIMEOUT: #ifdef MYSQL_REPORT_DATA_TRUNCATION @@ -1716,7 +1714,7 @@ PHP_FUNCTION(mysqli_options) } break; case IS_LONG: - convert_to_long_ex(mysql_value); + convert_to_long(mysql_value); break; default: break; @@ -2506,11 +2504,7 @@ PHP_FUNCTION(mysqli_store_result) RETURN_THROWS(); } MYSQLI_FETCH_RESOURCE_CONN(mysql, mysql_link, MYSQLI_STATUS_VALID); -#ifdef MYSQLI_USE_MYSQLND - result = flags & MYSQLI_STORE_RESULT_COPY_DATA? mysqlnd_store_result_ofs(mysql->mysql) : mysqlnd_store_result(mysql->mysql); -#else result = mysql_store_result(mysql->mysql); -#endif if (!result) { MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql); RETURN_FALSE; diff --git a/ext/mysqli/mysqli_arginfo.h b/ext/mysqli/mysqli_arginfo.h index c9f203a559..e3db6e98d2 100644 --- a/ext/mysqli/mysqli_arginfo.h +++ b/ext/mysqli/mysqli_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 36c7ee22aa4c5bb5e0174031a3defcaaadde0dbd */ + * Stub hash: cd44441ccae3d04e4691e0b1b040cafd8db8b521 */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mysqli_affected_rows, 0, 1, MAY_BE_LONG|MAY_BE_STRING) ZEND_ARG_OBJ_INFO(0, mysql, mysqli, 0) @@ -92,12 +92,10 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mysqli_fetch_lengths, 0, 1, MAY_ ZEND_ARG_OBJ_INFO(0, result, mysqli_result, 0) ZEND_END_ARG_INFO() -#if defined(MYSQLI_USE_MYSQLND) ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_fetch_all, 0, 1, IS_ARRAY, 0) ZEND_ARG_OBJ_INFO(0, result, mysqli_result, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "MYSQLI_NUM") ZEND_END_ARG_INFO() -#endif ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mysqli_fetch_array, 0, 1, MAY_BE_ARRAY|MAY_BE_NULL|MAY_BE_FALSE) ZEND_ARG_OBJ_INFO(0, result, mysqli_result, 0) @@ -353,9 +351,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_stmt_more_results, 0, 1, ZEND_END_ARG_INFO() #endif -#if defined(MYSQLI_USE_MYSQLND) -#define arginfo_mysqli_stmt_next_result arginfo_mysqli_stmt_more_results -#endif +#define arginfo_mysqli_stmt_next_result arginfo_mysqli_stmt_execute #define arginfo_mysqli_stmt_num_rows arginfo_mysqli_stmt_affected_rows @@ -593,11 +589,9 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_result_fetch_field_direct, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, index, IS_LONG, 0) ZEND_END_ARG_INFO() -#if defined(MYSQLI_USE_MYSQLND) ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_result_fetch_all, 0, 0, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "MYSQLI_NUM") ZEND_END_ARG_INFO() -#endif ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_result_fetch_array, 0, 0, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "MYSQLI_BOTH") @@ -658,9 +652,7 @@ ZEND_END_ARG_INFO() #define arginfo_class_mysqli_stmt_more_results arginfo_class_mysqli_get_connection_stats #endif -#if defined(MYSQLI_USE_MYSQLND) -#define arginfo_class_mysqli_stmt_next_result arginfo_class_mysqli_get_connection_stats -#endif +#define arginfo_class_mysqli_stmt_next_result arginfo_class_mysqli_character_set_name #define arginfo_class_mysqli_stmt_num_rows arginfo_class_mysqli_character_set_name @@ -707,9 +699,7 @@ ZEND_FUNCTION(mysqli_fetch_field); ZEND_FUNCTION(mysqli_fetch_fields); ZEND_FUNCTION(mysqli_fetch_field_direct); ZEND_FUNCTION(mysqli_fetch_lengths); -#if defined(MYSQLI_USE_MYSQLND) ZEND_FUNCTION(mysqli_fetch_all); -#endif ZEND_FUNCTION(mysqli_fetch_array); ZEND_FUNCTION(mysqli_fetch_assoc); ZEND_FUNCTION(mysqli_fetch_object); @@ -783,9 +773,7 @@ ZEND_FUNCTION(mysqli_stmt_insert_id); #if defined(MYSQLI_USE_MYSQLND) ZEND_FUNCTION(mysqli_stmt_more_results); #endif -#if defined(MYSQLI_USE_MYSQLND) ZEND_FUNCTION(mysqli_stmt_next_result); -#endif ZEND_FUNCTION(mysqli_stmt_num_rows); ZEND_FUNCTION(mysqli_stmt_param_count); ZEND_FUNCTION(mysqli_stmt_prepare); @@ -835,9 +823,7 @@ static const zend_function_entry ext_functions[] = { ZEND_FE(mysqli_fetch_fields, arginfo_mysqli_fetch_fields) ZEND_FE(mysqli_fetch_field_direct, arginfo_mysqli_fetch_field_direct) ZEND_FE(mysqli_fetch_lengths, arginfo_mysqli_fetch_lengths) -#if defined(MYSQLI_USE_MYSQLND) ZEND_FE(mysqli_fetch_all, arginfo_mysqli_fetch_all) -#endif ZEND_FE(mysqli_fetch_array, arginfo_mysqli_fetch_array) ZEND_FE(mysqli_fetch_assoc, arginfo_mysqli_fetch_assoc) ZEND_FE(mysqli_fetch_object, arginfo_mysqli_fetch_object) @@ -913,9 +899,7 @@ static const zend_function_entry ext_functions[] = { #if defined(MYSQLI_USE_MYSQLND) ZEND_FE(mysqli_stmt_more_results, arginfo_mysqli_stmt_more_results) #endif -#if defined(MYSQLI_USE_MYSQLND) ZEND_FE(mysqli_stmt_next_result, arginfo_mysqli_stmt_next_result) -#endif ZEND_FE(mysqli_stmt_num_rows, arginfo_mysqli_stmt_num_rows) ZEND_FE(mysqli_stmt_param_count, arginfo_mysqli_stmt_param_count) ZEND_FE(mysqli_stmt_prepare, arginfo_mysqli_stmt_prepare) @@ -1004,9 +988,7 @@ static const zend_function_entry class_mysqli_result_methods[] = { ZEND_ME_MAPPING(fetch_field, mysqli_fetch_field, arginfo_class_mysqli_result_fetch_field, ZEND_ACC_PUBLIC) ZEND_ME_MAPPING(fetch_fields, mysqli_fetch_fields, arginfo_class_mysqli_result_fetch_fields, ZEND_ACC_PUBLIC) ZEND_ME_MAPPING(fetch_field_direct, mysqli_fetch_field_direct, arginfo_class_mysqli_result_fetch_field_direct, ZEND_ACC_PUBLIC) -#if defined(MYSQLI_USE_MYSQLND) ZEND_ME_MAPPING(fetch_all, mysqli_fetch_all, arginfo_class_mysqli_result_fetch_all, ZEND_ACC_PUBLIC) -#endif ZEND_ME_MAPPING(fetch_array, mysqli_fetch_array, arginfo_class_mysqli_result_fetch_array, ZEND_ACC_PUBLIC) ZEND_ME_MAPPING(fetch_assoc, mysqli_fetch_assoc, arginfo_class_mysqli_result_fetch_assoc, ZEND_ACC_PUBLIC) ZEND_ME_MAPPING(fetch_object, mysqli_fetch_object, arginfo_class_mysqli_result_fetch_object, ZEND_ACC_PUBLIC) @@ -1033,9 +1015,7 @@ static const zend_function_entry class_mysqli_stmt_methods[] = { #if defined(MYSQLI_USE_MYSQLND) ZEND_ME_MAPPING(more_results, mysqli_stmt_more_results, arginfo_class_mysqli_stmt_more_results, ZEND_ACC_PUBLIC) #endif -#if defined(MYSQLI_USE_MYSQLND) ZEND_ME_MAPPING(next_result, mysqli_stmt_next_result, arginfo_class_mysqli_stmt_next_result, ZEND_ACC_PUBLIC) -#endif ZEND_ME_MAPPING(num_rows, mysqli_stmt_num_rows, arginfo_class_mysqli_stmt_num_rows, ZEND_ACC_PUBLIC) ZEND_ME_MAPPING(send_long_data, mysqli_stmt_send_long_data, arginfo_class_mysqli_stmt_send_long_data, ZEND_ACC_PUBLIC) ZEND_ME_MAPPING(free_result, mysqli_stmt_free_result, arginfo_class_mysqli_stmt_free_result, ZEND_ACC_PUBLIC) diff --git a/ext/mysqli/mysqli_driver.c b/ext/mysqli/mysqli_driver.c index c3fb5e48bb..5557b0ac2b 100644 --- a/ext/mysqli/mysqli_driver.c +++ b/ext/mysqli/mysqli_driver.c @@ -27,7 +27,7 @@ #include "zend_exceptions.h" #define MAP_PROPERTY_MYG_BOOL_READ(name, value) \ -static int name(mysqli_object *obj, zval *retval, zend_bool quiet) \ +static int name(mysqli_object *obj, zval *retval, bool quiet) \ { \ ZVAL_BOOL(retval, MyG(value)); \ return SUCCESS; \ @@ -41,7 +41,7 @@ static int name(mysqli_object *obj, zval *value) \ } \ #define MAP_PROPERTY_MYG_LONG_READ(name, value) \ -static int name(mysqli_object *obj, zval *retval, zend_bool quiet) \ +static int name(mysqli_object *obj, zval *retval, bool quiet) \ { \ ZVAL_LONG(retval, MyG(value)); \ return SUCCESS; \ @@ -55,7 +55,7 @@ static int name(mysqli_object *obj, zval *value) \ } \ #define MAP_PROPERTY_MYG_STRING_READ(name, value) \ -static int name(mysqli_object *obj, zval *retval, zend_bool quiet) \ +static int name(mysqli_object *obj, zval *retval, bool quiet) \ { \ ZVAL_STRING(retval, MyG(value)); \ return SUCCESS; \ @@ -79,7 +79,7 @@ static int driver_report_write(mysqli_object *obj, zval *value) /* }}} */ /* {{{ property driver_client_version_read */ -static int driver_client_version_read(mysqli_object *obj, zval *retval, zend_bool quiet) +static int driver_client_version_read(mysqli_object *obj, zval *retval, bool quiet) { ZVAL_LONG(retval, mysql_get_client_version()); @@ -88,7 +88,7 @@ static int driver_client_version_read(mysqli_object *obj, zval *retval, zend_boo /* }}} */ /* {{{ property driver_client_info_read */ -static int driver_client_info_read(mysqli_object *obj, zval *retval, zend_bool quiet) +static int driver_client_info_read(mysqli_object *obj, zval *retval, bool quiet) { ZVAL_STRING(retval, (char *)mysql_get_client_info()); @@ -97,7 +97,7 @@ static int driver_client_info_read(mysqli_object *obj, zval *retval, zend_bool q /* }}} */ /* {{{ property driver_driver_version_read */ -static int driver_driver_version_read(mysqli_object *obj, zval *retval, zend_bool quiet) +static int driver_driver_version_read(mysqli_object *obj, zval *retval, bool quiet) { ZVAL_LONG(retval, MYSQLI_VERSION_ID); diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c index 364638c44a..4870a4319a 100644 --- a/ext/mysqli/mysqli_nonapi.c +++ b/ext/mysqli/mysqli_nonapi.c @@ -47,7 +47,7 @@ static void php_mysqli_set_error(zend_long mysql_errno, char *mysql_err) } /* }}} */ -void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_connect, zend_bool in_ctor) /* {{{ */ +void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, bool is_real_connect, bool in_ctor) /* {{{ */ { MY_MYSQL *mysql = NULL; MYSQLI_RESOURCE *mysqli_resource = NULL; @@ -56,14 +56,14 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne *ssl_key = NULL, *ssl_cert = NULL, *ssl_ca = NULL, *ssl_capath = NULL, *ssl_cipher = NULL; size_t hostname_len = 0, username_len = 0, passwd_len = 0, dbname_len = 0, socket_len = 0; - zend_bool persistent = FALSE, ssl = FALSE; + bool persistent = FALSE, ssl = FALSE; zend_long port = 0, flags = 0; - zend_bool port_is_null = 1; + bool port_is_null = 1; zend_string *hash_key = NULL; - zend_bool new_connection = FALSE; + bool new_connection = FALSE; zend_resource *le; mysqli_plist_entry *plist = NULL; - zend_bool self_alloced = 0; + bool self_alloced = 0; #if !defined(MYSQL_USE_MYSQLND) @@ -245,7 +245,7 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne #ifndef MYSQLI_USE_MYSQLND if (!(mysql->mysql = mysql_init(NULL))) { #else - if (!(mysql->mysql = mysqlnd_init(MYSQLND_CLIENT_KNOWS_RSET_COPY_DATA, persistent))) { + if (!(mysql->mysql = mysqlnd_init(MYSQLND_CLIENT_NO_FLAG, persistent))) { #endif goto err; } @@ -307,7 +307,7 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne } } if (mysqlnd_connect(mysql->mysql, hostname, username, passwd, passwd_len, dbname, dbname_len, - port, socket, flags, MYSQLND_CLIENT_KNOWS_RSET_COPY_DATA) == NULL) + port, socket, flags, MYSQLND_CLIENT_NO_FLAG) == NULL) #endif { /* Save error messages - for mysqli_connect_error() & mysqli_connect_errno() */ @@ -431,28 +431,39 @@ PHP_FUNCTION(mysqli_fetch_assoc) /* }}} */ /* {{{ Fetches all result rows as an associative array, a numeric array, or both */ -#ifdef MYSQLI_USE_MYSQLND PHP_FUNCTION(mysqli_fetch_all) { MYSQL_RES *result; zval *mysql_result; - zend_long mode = MYSQLND_FETCH_NUM; + zend_long mode = MYSQLI_NUM; if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "O|l", &mysql_result, mysqli_result_class_entry, &mode) == FAILURE) { RETURN_THROWS(); } MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, mysql_result, "mysqli_result", MYSQLI_STATUS_VALID); - if (!mode || (mode & ~MYSQLND_FETCH_BOTH)) { + if (!mode || (mode & ~MYSQLI_BOTH)) { zend_argument_value_error(ERROR_ARG_POS(2), "must be one of MYSQLI_FETCH_NUM, " "MYSQLI_FETCH_ASSOC, or MYSQLI_FETCH_BOTH"); RETURN_THROWS(); } - mysqlnd_fetch_all(result, mode, return_value); + array_init_size(return_value, mysql_num_rows(result)); + + zend_ulong i = 0; + do { + zval row; + php_mysqli_fetch_into_hash_aux(&row, result, mode); + if (Z_TYPE(row) != IS_ARRAY) { + zval_ptr_dtor_nogc(&row); + break; + } + add_index_zval(return_value, i++, &row); + } while (1); } /* }}} */ +#ifdef MYSQLI_USE_MYSQLND /* {{{ Returns statistics about the zval cache */ PHP_FUNCTION(mysqli_get_client_stats) { @@ -689,12 +700,7 @@ PHP_FUNCTION(mysqli_query) switch (resultmode & ~MYSQLI_ASYNC) { #endif case MYSQLI_STORE_RESULT: -#ifdef MYSQLI_USE_MYSQLND - if (resultmode & MYSQLI_STORE_RESULT_COPY_DATA) { - result = mysqlnd_store_result_ofs(mysql->mysql); - } else -#endif - result = mysql_store_result(mysql->mysql); + result = mysql_store_result(mysql->mysql); break; case MYSQLI_USE_RESULT: result = mysql_use_result(mysql->mysql); @@ -1197,7 +1203,7 @@ PHP_FUNCTION(mysqli_begin_transaction) #ifndef MYSQLI_USE_MYSQLND /* {{{ */ -static int mysqli_savepoint_libmysql(MYSQL * conn, const char * const name, zend_bool release) +static int mysqli_savepoint_libmysql(MYSQL * conn, const char * const name, bool release) { int ret; char * query; diff --git a/ext/mysqli/mysqli_priv.h b/ext/mysqli/mysqli_priv.h index f537514968..0e8baba576 100644 --- a/ext/mysqli/mysqli_priv.h +++ b/ext/mysqli/mysqli_priv.h @@ -127,8 +127,8 @@ if ((MyG(report_mode) & MYSQLI_REPORT_ERROR) && mysql_stmt_errno(stmt)) { \ php_mysqli_report_error(mysql_stmt_sqlstate(stmt), mysql_stmt_errno(stmt), mysql_stmt_error(stmt)); \ } -void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_connect, zend_bool in_ctor); +void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, bool is_real_connect, bool in_ctor); -void php_mysqli_init(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_method); +void php_mysqli_init(INTERNAL_FUNCTION_PARAMETERS, bool is_method); #endif /* MYSQLI_PRIV_H */ diff --git a/ext/mysqli/mysqli_prop.c b/ext/mysqli/mysqli_prop.c index 2ee059c756..9749fe5632 100644 --- a/ext/mysqli/mysqli_prop.c +++ b/ext/mysqli/mysqli_prop.c @@ -72,7 +72,7 @@ if (!obj->ptr) { \ } #define MYSQLI_MAP_PROPERTY_FUNC_LONG( __func, __int_func, __get_type, __ret_type, __ret_type_sprint_mod)\ -static int __func(mysqli_object *obj, zval *retval, zend_bool quiet) \ +static int __func(mysqli_object *obj, zval *retval, bool quiet) \ {\ __ret_type l;\ __get_type;\ @@ -90,7 +90,7 @@ static int __func(mysqli_object *obj, zval *retval, zend_bool quiet) \ } #define MYSQLI_MAP_PROPERTY_FUNC_STRING(__func, __int_func, __get_type)\ -static int __func(mysqli_object *obj, zval *retval, zend_bool quiet)\ +static int __func(mysqli_object *obj, zval *retval, bool quiet)\ {\ char *c;\ __get_type;\ @@ -108,7 +108,7 @@ static int __func(mysqli_object *obj, zval *retval, zend_bool quiet)\ } /* {{{ property link_client_version_read */ -static int link_client_version_read(mysqli_object *obj, zval *retval, zend_bool quiet) +static int link_client_version_read(mysqli_object *obj, zval *retval, bool quiet) { ZVAL_LONG(retval, MYSQL_VERSION_ID); @@ -117,7 +117,7 @@ static int link_client_version_read(mysqli_object *obj, zval *retval, zend_bool /* }}} */ /* {{{ property link_client_info_read */ -static int link_client_info_read(mysqli_object *obj, zval *retval, zend_bool quiet) +static int link_client_info_read(mysqli_object *obj, zval *retval, bool quiet) { CHECK_STATUS(MYSQLI_STATUS_INITIALIZED, quiet); ZVAL_STRING(retval, MYSQL_SERVER_VERSION); @@ -127,7 +127,7 @@ static int link_client_info_read(mysqli_object *obj, zval *retval, zend_bool qui /* }}} */ /* {{{ property link_connect_errno_read */ -static int link_connect_errno_read(mysqli_object *obj, zval *retval, zend_bool quiet) +static int link_connect_errno_read(mysqli_object *obj, zval *retval, bool quiet) { ZVAL_LONG(retval, (zend_long)MyG(error_no)); @@ -136,7 +136,7 @@ static int link_connect_errno_read(mysqli_object *obj, zval *retval, zend_bool q /* }}} */ /* {{{ property link_connect_error_read */ -static int link_connect_error_read(mysqli_object *obj, zval *retval, zend_bool quiet) +static int link_connect_error_read(mysqli_object *obj, zval *retval, bool quiet) { if (MyG(error_msg)) { ZVAL_STRING(retval, MyG(error_msg)); @@ -149,7 +149,7 @@ static int link_connect_error_read(mysqli_object *obj, zval *retval, zend_bool q /* }}} */ /* {{{ property link_affected_rows_read */ -static int link_affected_rows_read(mysqli_object *obj, zval *retval, zend_bool quiet) +static int link_affected_rows_read(mysqli_object *obj, zval *retval, bool quiet) { MY_MYSQL *mysql; my_ulonglong rc; @@ -182,7 +182,7 @@ static int link_affected_rows_read(mysqli_object *obj, zval *retval, zend_bool q /* }}} */ /* {{{ property link_error_list_read */ -static int link_error_list_read(mysqli_object *obj, zval *retval, zend_bool quiet) +static int link_error_list_read(mysqli_object *obj, zval *retval, bool quiet) { MY_MYSQL *mysql; @@ -243,7 +243,7 @@ MYSQLI_MAP_PROPERTY_FUNC_LONG(link_warning_count_read, mysql_warning_count, MYSQ /* result properties */ /* {{{ property result_type_read */ -static int result_type_read(mysqli_object *obj, zval *retval, zend_bool quiet) +static int result_type_read(mysqli_object *obj, zval *retval, bool quiet) { MYSQL_RES *p; @@ -261,7 +261,7 @@ static int result_type_read(mysqli_object *obj, zval *retval, zend_bool quiet) /* }}} */ /* {{{ property result_lengths_read */ -static int result_lengths_read(mysqli_object *obj, zval *retval, zend_bool quiet) +static int result_lengths_read(mysqli_object *obj, zval *retval, bool quiet) { MYSQL_RES *p; #ifdef MYSQLI_USE_MYSQLND @@ -297,7 +297,7 @@ MYSQLI_MAP_PROPERTY_FUNC_LONG(result_num_rows_read, mysql_num_rows, MYSQLI_GET_R /* statement properties */ /* {{{ property stmt_id_read */ -static int stmt_id_read(mysqli_object *obj, zval *retval, zend_bool quiet) +static int stmt_id_read(mysqli_object *obj, zval *retval, bool quiet) { MY_STMT *p; @@ -316,7 +316,7 @@ static int stmt_id_read(mysqli_object *obj, zval *retval, zend_bool quiet) /* }}} */ /* {{{ property stmt_affected_rows_read */ -static int stmt_affected_rows_read(mysqli_object *obj, zval *retval, zend_bool quiet) +static int stmt_affected_rows_read(mysqli_object *obj, zval *retval, bool quiet) { MY_STMT *p; my_ulonglong rc; @@ -347,7 +347,7 @@ static int stmt_affected_rows_read(mysqli_object *obj, zval *retval, zend_bool q /* }}} */ /* {{{ property stmt_error_list_read */ -static int stmt_error_list_read(mysqli_object *obj, zval *retval, zend_bool quiet) +static int stmt_error_list_read(mysqli_object *obj, zval *retval, bool quiet) { MY_STMT * stmt; diff --git a/ext/mysqli/mysqli_warning.c b/ext/mysqli/mysqli_warning.c index 7b1552e5ac..9d2b05b30a 100644 --- a/ext/mysqli/mysqli_warning.c +++ b/ext/mysqli/mysqli_warning.c @@ -125,13 +125,13 @@ MYSQLI_WARNING * php_get_warnings(MYSQLND_CONN_DATA * mysql) return NULL; } - result = mysql->m->use_result(mysql, 0); + result = mysql->m->use_result(mysql); for (;;) { zval *entry; int errno; - mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, &row, MYSQLND_MYSQLI); + mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, &row); if (Z_TYPE(row) != IS_ARRAY) { zval_ptr_dtor(&row); break; @@ -195,7 +195,7 @@ PHP_METHOD(mysqli_warning, next) /* }}} */ /* {{{ property mysqli_warning_message */ -static int mysqli_warning_message(mysqli_object *obj, zval *retval, zend_bool quiet) +static int mysqli_warning_message(mysqli_object *obj, zval *retval, bool quiet) { MYSQLI_WARNING *w; @@ -215,7 +215,7 @@ static int mysqli_warning_message(mysqli_object *obj, zval *retval, zend_bool qu /* }}} */ /* {{{ property mysqli_warning_sqlstate */ -static int mysqli_warning_sqlstate(mysqli_object *obj, zval *retval, zend_bool quiet) +static int mysqli_warning_sqlstate(mysqli_object *obj, zval *retval, bool quiet) { MYSQLI_WARNING *w; @@ -235,7 +235,7 @@ static int mysqli_warning_sqlstate(mysqli_object *obj, zval *retval, zend_bool q /* }}} */ /* {{{ property mysqli_warning_error */ -static int mysqli_warning_errno(mysqli_object *obj, zval *retval, zend_bool quiet) +static int mysqli_warning_errno(mysqli_object *obj, zval *retval, bool quiet) { MYSQLI_WARNING *w; diff --git a/ext/mysqli/php_mysqli_structs.h b/ext/mysqli/php_mysqli_structs.h index 16ed9ddefc..6ab9615985 100644 --- a/ext/mysqli/php_mysqli_structs.h +++ b/ext/mysqli/php_mysqli_structs.h @@ -88,7 +88,7 @@ typedef struct { zval li_read; php_stream *li_stream; unsigned int multi_query; - zend_bool persistent; + bool persistent; #ifdef MYSQLI_USE_MYSQLND int async_result_fetch_type; #endif @@ -124,7 +124,7 @@ struct st_mysqli_warning { typedef struct _mysqli_property_entry { const char *pname; size_t pname_length; - int (*r_func)(mysqli_object *obj, zval *retval, zend_bool quiet); + int (*r_func)(mysqli_object *obj, zval *retval, bool quiet); int (*w_func)(mysqli_object *obj, zval *value); } mysqli_property_entry; @@ -289,7 +289,7 @@ ZEND_BEGIN_MODULE_GLOBALS(mysqli) zend_long report_mode; HashTable *report_ht; zend_ulong multi_query; - zend_bool rollback_on_cached_plink; + bool rollback_on_cached_plink; ZEND_END_MODULE_GLOBALS(mysqli) #define MyG(v) ZEND_MODULE_GLOBALS_ACCESSOR(mysqli, v) diff --git a/ext/mysqli/tests/bug34810.phpt b/ext/mysqli/tests/bug34810.phpt index 9157a13b9a..e1568d3038 100644 --- a/ext/mysqli/tests/bug34810.phpt +++ b/ext/mysqli/tests/bug34810.phpt @@ -12,13 +12,14 @@ class DbConnection { public function connect() { require_once("connect.inc"); - $link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket); + /* Pass false as $connect_flags cannot be accessed via globals. */ + $link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket, false); var_dump($link); $link = mysqli_init(); var_dump($link); - $mysql = new my_mysqli($host, $user, $passwd, $db, $port, $socket); + $mysql = new my_mysqli($host, $user, $passwd, $db, $port, $socket, false); $mysql->query("DROP TABLE IF EXISTS test_warnings"); $mysql->query("CREATE TABLE test_warnings (a int not null)"); $mysql->query("SET sql_mode=''"); diff --git a/ext/mysqli/tests/bug62885.phpt b/ext/mysqli/tests/bug62885.phpt index 4d02475570..c0815c7f04 100644 --- a/ext/mysqli/tests/bug62885.phpt +++ b/ext/mysqli/tests/bug62885.phpt @@ -12,11 +12,11 @@ if (!$IS_MYSQLND) { <?php error_reporting(E_ALL); $tablica = array(); -$test1 = mysqli_poll($test2, $test3, $tablica, null); +$test1 = mysqli_poll($test2, $test3, $tablica, 0); $test2 = array(); $test2 = array(); -$test1 = mysqli_poll($test2, $test3, $tablica, null); +$test1 = mysqli_poll($test2, $test3, $tablica, 0); echo "okey"; ?> --EXPECTF-- diff --git a/ext/mysqli/tests/bug75434.phpt b/ext/mysqli/tests/bug75434.phpt index 1bc325e29f..3e295d83bf 100644 --- a/ext/mysqli/tests/bug75434.phpt +++ b/ext/mysqli/tests/bug75434.phpt @@ -3,7 +3,6 @@ Bug #75434 Wrong reflection for mysqli_fetch_all function --SKIPIF-- <?php require_once('skipif.inc'); -if (!stristr(mysqli_get_client_info(), 'mysqlnd')) die("skip: only available in mysqlnd"); ?> --FILE-- <?php diff --git a/ext/mysqli/tests/mysqli_class_mysqli_result_interface.phpt b/ext/mysqli/tests/mysqli_class_mysqli_result_interface.phpt index 629697a50c..4837a5f695 100644 --- a/ext/mysqli/tests/mysqli_class_mysqli_result_interface.phpt +++ b/ext/mysqli/tests/mysqli_class_mysqli_result_interface.phpt @@ -27,6 +27,7 @@ require_once('skipifconnectfailure.inc'); '__construct' => true, 'close' => true, 'data_seek' => true, + 'fetch_all' => true, 'fetch_array' => true, 'fetch_assoc' => true, 'fetch_field' => true, @@ -39,8 +40,6 @@ require_once('skipifconnectfailure.inc'); 'free_result' => true, 'getIterator' => true, ); - if ($IS_MYSQLND) - $expected_methods['fetch_all'] = true; foreach ($methods as $k => $method) { if (isset($expected_methods[$method])) { diff --git a/ext/mysqli/tests/mysqli_constants.phpt b/ext/mysqli/tests/mysqli_constants.phpt index 22e3cd9d2b..6297d56b34 100644 --- a/ext/mysqli/tests/mysqli_constants.phpt +++ b/ext/mysqli/tests/mysqli_constants.phpt @@ -93,6 +93,7 @@ mysqli.allow_local_infile=1 "MYSQLI_REFRESH_HOSTS" => true, "MYSQLI_REFRESH_STATUS" => true, "MYSQLI_REFRESH_THREADS" => true, + "MYSQLI_REFRESH_REPLICA" => true, "MYSQLI_REFRESH_SLAVE" => true, "MYSQLI_REFRESH_MASTER" => true, "MYSQLI_DEBUG_TRACE_ENABLED" => true, diff --git a/ext/mysqli/tests/mysqli_fetch_all.phpt b/ext/mysqli/tests/mysqli_fetch_all.phpt index ae99c2ca87..fac34e3d88 100644 --- a/ext/mysqli/tests/mysqli_fetch_all.phpt +++ b/ext/mysqli/tests/mysqli_fetch_all.phpt @@ -4,8 +4,6 @@ mysqli_fetch_all() <?php require_once('skipif.inc'); require_once('skipifconnectfailure.inc'); -if (!function_exists('mysqli_fetch_all')) - die("skip: function only available with mysqlnd"); ?> --FILE-- <?php diff --git a/ext/mysqli/tests/mysqli_fetch_all_oo.phpt b/ext/mysqli/tests/mysqli_fetch_all_oo.phpt index df522f2eeb..ebdc55443c 100644 --- a/ext/mysqli/tests/mysqli_fetch_all_oo.phpt +++ b/ext/mysqli/tests/mysqli_fetch_all_oo.phpt @@ -4,9 +4,6 @@ $mysqli->fetch_all() (introduced with mysqlnd) <?php require_once('skipif.inc'); require_once('skipifconnectfailure.inc'); - -if (!function_exists('mysqli_fetch_all')) - die("skip: function only available with mysqlnd"); ?> --FILE-- <?php diff --git a/ext/mysqli/tests/mysqli_fetch_field.phpt b/ext/mysqli/tests/mysqli_fetch_field.phpt index 2018d75755..48d30453a0 100644 --- a/ext/mysqli/tests/mysqli_fetch_field.phpt +++ b/ext/mysqli/tests/mysqli_fetch_field.phpt @@ -35,10 +35,6 @@ require_once('skipifconnectfailure.inc'); printf("[004] Expecting charset %s/%d got %d\n", $charsetInfo->charset, $charsetInfo->number, $tmp->charsetnr); } - if ($tmp->length != $charsetInfo->max_length) { - printf("[005] Expecting length %d got %d\n", - $charsetInfo->max_length, $tmp->max_length); - } if ($tmp->db != $db) { printf("011] Expecting database '%s' got '%s'\n", $db, $tmp->db); @@ -97,7 +93,7 @@ object(stdClass)#%d (13) { ["catalog"]=> string(%d) "%s" ["max_length"]=> - int(1) + int(0) ["length"]=> int(11) ["charsetnr"]=> @@ -159,7 +155,7 @@ object(stdClass)#%d (13) { ["catalog"]=> string(%d) "%s" ["max_length"]=> - int(1) + int(0) ["length"]=> int(11) ["charsetnr"]=> diff --git a/ext/mysqli/tests/mysqli_fetch_field_oo.phpt b/ext/mysqli/tests/mysqli_fetch_field_oo.phpt index d655e05a9c..ed0ce107cf 100644 --- a/ext/mysqli/tests/mysqli_fetch_field_oo.phpt +++ b/ext/mysqli/tests/mysqli_fetch_field_oo.phpt @@ -42,10 +42,6 @@ require_once('skipifconnectfailure.inc'); printf("[005] Expecting charset %s/%d got %d\n", $charsetInfo->charset, $charsetInfo->number, $tmp->charsetnr); } - if ($tmp->length != $charsetInfo->max_length) { - printf("[006] Expecting length %d got %d\n", - $charsetInfo->max_length, $tmp->max_length); - } if ($tmp->db != $db) { printf("[007] Expecting database '%s' got '%s'\n", $db, $tmp->db); @@ -86,7 +82,7 @@ object(stdClass)#%d (13) { ["catalog"]=> string(%d) "%s" ["max_length"]=> - int(1) + int(0) ["length"]=> int(11) ["charsetnr"]=> diff --git a/ext/mysqli/tests/mysqli_fetch_fields.phpt b/ext/mysqli/tests/mysqli_fetch_fields.phpt index 7cfad35f87..ae1d12847a 100644 --- a/ext/mysqli/tests/mysqli_fetch_fields.phpt +++ b/ext/mysqli/tests/mysqli_fetch_fields.phpt @@ -35,11 +35,6 @@ require_once('skipifconnectfailure.inc'); $charsetInfo->charset, $charsetInfo->number, $field->charsetnr); } - if ($field->length != $charsetInfo->max_length) { - printf("[005] Expecting length %d got %d\n", - $charsetInfo->max_length, - $field->max_length); - } break; } } @@ -76,7 +71,7 @@ object(stdClass)#%d (13) { ["catalog"]=> string(%d) "%s" ["max_length"]=> - int(1) + int(0) ["length"]=> int(11) ["charsetnr"]=> @@ -104,7 +99,7 @@ object(stdClass)#%d (13) { ["catalog"]=> string(%d) "%s" ["max_length"]=> - int(1) + int(0) ["length"]=> int(%d) ["charsetnr"]=> diff --git a/ext/mysqli/tests/mysqli_kill.phpt b/ext/mysqli/tests/mysqli_kill.phpt index bec08cc1e1..d2c0fc6df6 100644 --- a/ext/mysqli/tests/mysqli_kill.phpt +++ b/ext/mysqli/tests/mysqli_kill.phpt @@ -11,9 +11,8 @@ require_once('skipifconnectfailure.inc'); require('table.inc'); - // Zend will cast the NULL to 0 try { - mysqli_kill($link, null); + mysqli_kill($link, 0); } catch (\ValueError $e) { echo $e->getMessage() . \PHP_EOL; } diff --git a/ext/mysqli/tests/mysqli_result_references.phpt b/ext/mysqli/tests/mysqli_result_references.phpt index 2e97cd45d7..c6b34896d8 100644 --- a/ext/mysqli/tests/mysqli_result_references.phpt +++ b/ext/mysqli/tests/mysqli_result_references.phpt @@ -5,6 +5,8 @@ References to result sets require_once('skipif.inc'); require_once('skipifconnectfailure.inc'); ?> +--INI-- +opcache.enable=0 --FILE-- <?php require_once('connect.inc'); @@ -136,9 +138,9 @@ array(1) refcount(2){ [0]=> array(2) refcount(1){ ["id"]=> - string(1) "1" refcount(%d) + string(1) "1" interned ["label"]=> - string(1) "a" refcount(%d) + string(1) "a" interned } } done! diff --git a/ext/mysqli/tests/mysqli_result_references_mysqlnd.phpt b/ext/mysqli/tests/mysqli_result_references_mysqlnd.phpt index 3c44f8a309..bdd37c79f3 100644 --- a/ext/mysqli/tests/mysqli_result_references_mysqlnd.phpt +++ b/ext/mysqli/tests/mysqli_result_references_mysqlnd.phpt @@ -59,14 +59,14 @@ array(1) refcount(%d){ ["row_copy"]=> array(2) refcount(1){ ["id"]=> - string(1) "1" refcount(%d) + string(1) "1" interned ["label"]=> - string(1) "a" refcount(%d) + string(1) "a" interned } ["id_ref"]=> - string(1) "1" refcount(%d) + string(1) "1" interned ["id_copy"]=> - string(1) "1" refcount(%d) + string(1) "1" interned } } array(2) refcount(%d){ @@ -77,35 +77,35 @@ array(2) refcount(%d){ ["row_copy"]=> array(2) refcount(%d){ ["id"]=> - string(1) "1" refcount(%d) + string(1) "1" interned ["label"]=> - string(1) "a" refcount(%d) + string(1) "a" interned } ["id_ref"]=> - string(1) "1" refcount(%d) + string(1) "1" interned ["id_copy"]=> - string(1) "1" refcount(%d) + string(1) "1" interned } [1]=> array(5) refcount(%d){ ["row_ref"]=> &array(2) refcount(%d){ ["id"]=> - &string(1) "2" refcount(%d) + &string(1) "2" interned ["label"]=> - string(1) "b" refcount(%d) + string(1) "b" interned } ["row_copy"]=> array(2) refcount(%d){ ["id"]=> - string(1) "2" refcount(%d) + string(1) "2" interned ["label"]=> - string(1) "b" refcount(%d) + string(1) "b" interned } ["id_ref"]=> - &string(1) "2" refcount(%d) + &string(1) "2" interned ["id_copy"]=> - string(1) "2" refcount(%d) + string(1) "2" interned ["id_copy_mod"]=> int(2) } diff --git a/ext/mysqli/tests/mysqli_stmt_attr_set.phpt b/ext/mysqli/tests/mysqli_stmt_attr_set.phpt index 0edbc578e8..634faa01c3 100644 --- a/ext/mysqli/tests/mysqli_stmt_attr_set.phpt +++ b/ext/mysqli/tests/mysqli_stmt_attr_set.phpt @@ -61,7 +61,7 @@ require_once("connect.inc"); $res->close(); $stmt->close(); - // expecting max_length to _be_ set + // MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH is no longer supported, expect no change in behavior. $stmt = mysqli_stmt_init($link); $stmt->prepare("SELECT label FROM test"); var_dump($stmt->attr_set(MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH, 1)); @@ -75,8 +75,8 @@ require_once("connect.inc"); $max_lengths = array(); foreach ($fields as $k => $meta) { $max_lengths[$meta->name] = $meta->max_length; - if ($meta->max_length === 0) - printf("[008] max_length should be set (!= 0), got %s for field %s\n", $meta->max_length, $meta->name); + if ($meta->max_length !== 0) + printf("[008] max_length should be not set (= 0), got %s for field %s\n", $meta->max_length, $meta->name); } $res->close(); $stmt->close(); diff --git a/ext/mysqli/tests/mysqli_stmt_get_result_non_select.phpt b/ext/mysqli/tests/mysqli_stmt_get_result_non_select.phpt index f2428aeb92..9a0e52d5cb 100644 --- a/ext/mysqli/tests/mysqli_stmt_get_result_non_select.phpt +++ b/ext/mysqli/tests/mysqli_stmt_get_result_non_select.phpt @@ -35,12 +35,12 @@ if (!function_exists('mysqli_stmt_get_result')) printf("[004] It is very unlikely that SHOW ENGINES returns no data, check manually\n"); } else { $found = false; - foreach ($engines as $k => $engine) - foreach ($engine as $k => $v) - if (stristr($v, 'MyISAM')) { - $found = true; - break; - } + foreach ($engines as $engine) { + if (stristr($engine[0], 'MyISAM')) { + $found = true; + break; + } + } if (!$found) printf("[005] It is very unlikely that SHOW ENGINES does not show MyISAM, check manually\n"); } |