diff --git a/UPGRADING b/UPGRADING index 0354f7e93fb15..56125e338db78 100644 --- a/UPGRADING +++ b/UPGRADING @@ -100,6 +100,7 @@ PHP 8.1 UPGRADE NOTES . Classes extending mysqli_stmt::execute() will be required to specify the additional parameter now. RFC: https://wiki.php.net/rfc/mysqli_bind_in_execute + . mysqli::connect() will now return true instead of null on success. - MySQLnd: . The mysqlnd.fetch_copy_data ini setting has been removed. However, this diff --git a/ext/mysqli/mysqli.stub.php b/ext/mysqli/mysqli.stub.php index 23e207e9d3f31..f5c34d16549a9 100644 --- a/ext/mysqli/mysqli.stub.php +++ b/ext/mysqli/mysqli.stub.php @@ -63,43 +63,43 @@ public function __construct( ) {} /** - * @return bool + * @tentative-return-type * @alias mysqli_autocommit */ - public function autocommit(bool $enable) {} + public function autocommit(bool $enable): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_begin_transaction */ - public function begin_transaction(int $flags = 0, ?string $name = null) {} + public function begin_transaction(int $flags = 0, ?string $name = null): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_change_user */ - public function change_user(string $username, string $password, ?string $database) {} + public function change_user(string $username, string $password, ?string $database): bool {} /** - * @return string + * @tentative-return-type * @alias mysqli_character_set_name */ - public function character_set_name() {} + public function character_set_name(): string {} /** * @return bool * @alias mysqli_close */ - public function close() {} + public function close() {} // TODO make return type void /** - * @return bool + * @tentative-return-type * @alias mysqli_commit */ - public function commit(int $flags = 0, ?string $name = null) {} + public function commit(int $flags = 0, ?string $name = null): bool {} /** - * @return bool|null + * @tentative-return-type * @alias mysqli_connect * @no-verify */ @@ -110,111 +110,109 @@ public function connect( ?string $database = null, ?int $port = null, ?string $socket = null - ) {} + ): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_dump_debug_info */ - public function dump_debug_info() {} + public function dump_debug_info(): bool {} /** * @return bool * @alias mysqli_debug * @no-verify Should really be a static method */ - public function debug(string $options) {} + public function debug(string $options) {} // TODO make return type void /** - * @return object|null + * @tentative-return-type * @alias mysqli_get_charset */ - public function get_charset() {} + public function get_charset(): ?object {} /** - * @return string|null + * @tentative-return-type * @alias mysqli_get_client_info * @deprecated 8.1.0 */ - public function get_client_info() {} + public function get_client_info(): string {} #if defined(MYSQLI_USE_MYSQLND) /** - * @return array + * @tentative-return-type * @alias mysqli_get_connection_stats */ - public function get_connection_stats() {} + public function get_connection_stats(): array {} #endif /** - * @return string + * @tentative-return-type * @alias mysqli_get_server_info */ - public function get_server_info() {} + public function get_server_info(): string {} /** - * @return mysqli_warning|false + * @tentative-return-type * @alias mysqli_get_warnings */ - public function get_warnings() {} + public function get_warnings(): mysqli_warning|false {} - /** - * @return null|false - */ + /** @return bool|null */ public function init() {} /** - * @return bool + * @tentative-return-type * @alias mysqli_kill */ - public function kill(int $process_id) {} + public function kill(int $process_id): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_multi_query */ - public function multi_query(string $query) {} + public function multi_query(string $query): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_more_results */ - public function more_results() {} + public function more_results(): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_next_result */ - public function next_result() {} + public function next_result(): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_ping */ - public function ping() {} + public function ping(): bool {} #if defined(MYSQLI_USE_MYSQLND) /** - * @return int|false + * @tentative-return-type * @alias mysqli_poll */ - public static function poll(?array &$read, ?array &$error, array &$reject, int $seconds, int $microseconds = 0) {} + public static function poll(?array &$read, ?array &$error, array &$reject, int $seconds, int $microseconds = 0): int|false {} #endif /** - * @return mysqli_stmt|false + * @tentative-return-type * @alias mysqli_prepare */ - public function prepare(string $query) {} + public function prepare(string $query): mysqli_stmt|false {} /** - * @return mysqli_result|bool + * @tentative-return-type * @alias mysqli_query */ - public function query(string $query, int $result_mode = MYSQLI_STORE_RESULT) {} + public function query(string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_real_connect */ public function real_connect( @@ -225,77 +223,77 @@ public function real_connect( ?int $port = null, ?string $socket = null, int $flags = 0 - ) {} + ): bool {} /** - * @return string + * @tentative-return-type * @alias mysqli_real_escape_string */ - public function real_escape_string(string $string) {} + public function real_escape_string(string $string): string {} #if defined(MYSQLI_USE_MYSQLND) /** - * @return mysqli_result|bool + * @tentative-return-type * @alias mysqli_reap_async_query */ - public function reap_async_query() {} + public function reap_async_query(): mysqli_result|bool {} #endif /** - * @return string + * @tentative-return-type * @alias mysqli_real_escape_string */ - public function escape_string(string $string) {} + public function escape_string(string $string): string {} /** - * @return bool + * @tentative-return-type * @alias mysqli_real_query */ - public function real_query(string $query) {} + public function real_query(string $query): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_release_savepoint */ - public function release_savepoint(string $name) {} + public function release_savepoint(string $name): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_rollback */ - public function rollback(int $flags = 0, ?string $name = null) {} + public function rollback(int $flags = 0, ?string $name = null): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_savepoint */ - public function savepoint(string $name) {} + public function savepoint(string $name): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_select_db */ - public function select_db(string $database) {} + public function select_db(string $database): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_set_charset */ - public function set_charset(string $charset) {} + public function set_charset(string $charset): bool {} /** * @param string|int $value - * @return bool + * @tentative-return-type * @alias mysqli_options */ - public function options(int $option, $value) {} + public function options(int $option, $value): bool {} /** * @param string|int $value - * @return bool + * @tentative-return-type * @alias mysqli_options */ - public function set_opt(int $option, $value) {} + public function set_opt(int $option, $value): bool {} /** * @return bool @@ -307,43 +305,43 @@ public function ssl_set( ?string $ca_certificate, ?string $ca_path, ?string $cipher_algos - ) {} + ) {} // TODO make return type void /** - * @return string|false + * @tentative-return-type * @alias mysqli_stat */ - public function stat() {} + public function stat(): string|false {} /** - * @return mysqli_stmt|false + * @tentative-return-type * @alias mysqli_stmt_init */ - public function stmt_init() {} + public function stmt_init(): mysqli_stmt|false {} /** - * @return mysqli_result|false + * @tentative-return-type * @alias mysqli_store_result */ - public function store_result(int $mode = 0) {} + public function store_result(int $mode = 0): mysqli_result|false {} /** - * @return bool + * @tentative-return-type * @alias mysqli_thread_safe */ - public function thread_safe() {} + public function thread_safe(): bool {} /** - * @return mysqli_result|false + * @tentative-return-type * @alias mysqli_use_result */ - public function use_result() {} + public function use_result(): mysqli_result|false {} /** - * @return bool + * @tentative-return-type * @alias mysqli_refresh */ - public function refresh(int $flags) {} + public function refresh(int $flags): bool {} } class mysqli_result implements IteratorAggregate @@ -361,89 +359,87 @@ class mysqli_result implements IteratorAggregate public function __construct(mysqli $mysql, int $result_mode = MYSQLI_STORE_RESULT) {} /** - * @return void + * @tentative-return-type * @alias mysqli_free_result */ - public function close() {} + public function close(): void {} /** - * @return void + * @tentative-return-type * @alias mysqli_free_result */ - public function free() {} + public function free(): void {} /** - * @return bool + * @tentative-return-type * @alias mysqli_data_seek */ - public function data_seek(int $offset) {} + public function data_seek(int $offset): bool {} /** - * @return object|false + * @tentative-return-type * @alias mysqli_fetch_field */ - public function fetch_field() {} + public function fetch_field(): object|false {} /** - * @return array + * @tentative-return-type * @alias mysqli_fetch_fields */ - public function fetch_fields() {} + public function fetch_fields(): array {} /** - * @return object|false + * @tentative-return-type * @alias mysqli_fetch_field_direct */ - public function fetch_field_direct(int $index) {} + public function fetch_field_direct(int $index): object|false {} /** - * @return array + * @tentative-return-type * @alias mysqli_fetch_all */ - public function fetch_all(int $mode = MYSQLI_NUM) {} + public function fetch_all(int $mode = MYSQLI_NUM): array {} /** - * @return array|null|false + * @tentative-return-type * @alias mysqli_fetch_array */ - public function fetch_array(int $mode = MYSQLI_BOTH) {} + public function fetch_array(int $mode = MYSQLI_BOTH): array|null|false {} /** - * @return array|null|false + * @tentative-return-type * @alias mysqli_fetch_assoc */ - public function fetch_assoc() {} + public function fetch_assoc(): array|null|false {} /** - * @return object|null|false + * @tentative-return-type * @alias mysqli_fetch_object */ - public function fetch_object(string $class = "stdClass", array $constructor_args = []) {} + public function fetch_object(string $class = "stdClass", array $constructor_args = []): object|null|false {} /** - * @return array|null|false + * @tentative-return-type * @alias mysqli_fetch_row */ - public function fetch_row() {} + public function fetch_row(): array|null|false {} - /** - * @alias mysqli_fetch_column - */ + /** @alias mysqli_fetch_column */ public function fetch_column(int $column = 0): null|int|float|string|false {} /** - * @return bool + * @tentative-return-type * @alias mysqli_field_seek */ - public function field_seek(int $index) {} + public function field_seek(int $index): bool {} /** - * @return void + * @tentative-return-type * @alias mysqli_free_result */ - public function free_result() {} + public function free_result(): void {} - public function getIterator(): Iterator; + public function getIterator(): Iterator {} } class mysqli_stmt @@ -471,121 +467,121 @@ class mysqli_stmt public function __construct(mysqli $mysql, ?string $query = null) {} /** - * @return int + * @tentative-return-type * @alias mysqli_stmt_attr_get */ - public function attr_get(int $attribute) {} + public function attr_get(int $attribute): int {} /** - * @return bool + * @tentative-return-type * @alias mysqli_stmt_attr_set */ - public function attr_set(int $attribute, int $value) {} + public function attr_set(int $attribute, int $value): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_stmt_bind_param */ - public function bind_param(string $types, mixed &...$vars) {} + public function bind_param(string $types, mixed &...$vars): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_stmt_bind_result */ - public function bind_result(mixed &...$vars) {} + public function bind_result(mixed &...$vars): bool {} /** * @return bool * @alias mysqli_stmt_close */ - public function close() {} + public function close() {} // TODO make return type void /** - * @return void + * @tentative-return-type * @alias mysqli_stmt_data_seek */ - public function data_seek(int $offset) {} + public function data_seek(int $offset): void {} /** - * @return bool + * @tentative-return-type * @alias mysqli_stmt_execute */ - public function execute(?array $params = null) {} + public function execute(?array $params = null): bool {} /** - * @return bool|null + * @tentative-return-type * @alias mysqli_stmt_fetch */ - public function fetch() {} + public function fetch(): bool|null {} /** - * @return mysqli_warning|false + * @tentative-return-type * @alias mysqli_stmt_get_warnings */ - public function get_warnings() {} + public function get_warnings(): mysqli_warning|false {} /** - * @return mysqli_result|false + * @tentative-return-type * @alias mysqli_stmt_result_metadata */ - public function result_metadata() {} + public function result_metadata(): mysqli_result|false {} #if defined(MYSQLI_USE_MYSQLND) /** - * @return bool + * @tentative-return-type * @alias mysqli_stmt_more_results */ - public function more_results() {} + public function more_results(): bool {} #endif /** - * @return bool + * @tentative-return-type * @alias mysqli_stmt_next_result */ - public function next_result() {} + public function next_result(): bool {} /** - * @return int|string + * @tentative-return-type * @alias mysqli_stmt_num_rows */ - public function num_rows() {} + public function num_rows(): int|string {} /** - * @return bool + * @tentative-return-type * @alias mysqli_stmt_send_long_data */ - public function send_long_data(int $param_num, string $data) {} + public function send_long_data(int $param_num, string $data): bool {} /** - * @return void + * @tentative-return-type * @alias mysqli_stmt_free_result */ - public function free_result() {} + public function free_result(): void {} /** - * @return bool + * @tentative-return-type * @alias mysqli_stmt_reset */ - public function reset() {} + public function reset(): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_stmt_prepare */ - public function prepare(string $query) {} + public function prepare(string $query): bool {} /** - * @return bool + * @tentative-return-type * @alias mysqli_stmt_store_result */ - public function store_result() {} + public function store_result(): bool {} #if defined(MYSQLI_USE_MYSQLND) /** - * @return mysqli_result|false + * @tentative-return-type * @alias mysqli_stmt_get_result */ - public function get_result() {} + public function get_result(): mysqli_result|false {} #endif } diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index f76bf771a8040..54a0b64dd07b1 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -1506,7 +1506,7 @@ void php_mysqli_init(INTERNAL_FUNCTION_PARAMETERS, bool is_method) mysqli_resource->status = MYSQLI_STATUS_INITIALIZED; if (!is_method) { - MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_link_class_entry); + MYSQLI_RETVAL_RESOURCE(mysqli_resource, mysqli_link_class_entry); } else { (Z_MYSQLI_P(getThis()))->ptr = mysqli_resource; } @@ -1887,7 +1887,7 @@ PHP_FUNCTION(mysqli_prepare) /* change status */ mysqli_resource->status = MYSQLI_STATUS_VALID; - MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_stmt_class_entry); + MYSQLI_RETVAL_RESOURCE(mysqli_resource, mysqli_stmt_class_entry); } /* }}} */ @@ -2432,7 +2432,7 @@ PHP_FUNCTION(mysqli_stmt_init) mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); mysqli_resource->status = MYSQLI_STATUS_INITIALIZED; mysqli_resource->ptr = (void *)stmt; - MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_stmt_class_entry); + MYSQLI_RETVAL_RESOURCE(mysqli_resource, mysqli_stmt_class_entry); } /* }}} */ @@ -2480,7 +2480,7 @@ PHP_FUNCTION(mysqli_stmt_result_metadata) mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); mysqli_resource->ptr = (void *)result; mysqli_resource->status = MYSQLI_STATUS_VALID; - MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry); + MYSQLI_RETVAL_RESOURCE(mysqli_resource, mysqli_result_class_entry); } /* }}} */ @@ -2569,7 +2569,7 @@ PHP_FUNCTION(mysqli_store_result) mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); mysqli_resource->ptr = (void *)result; mysqli_resource->status = MYSQLI_STATUS_VALID; - MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry); + MYSQLI_RETVAL_RESOURCE(mysqli_resource, mysqli_result_class_entry); } /* }}} */ @@ -2623,7 +2623,7 @@ PHP_FUNCTION(mysqli_use_result) mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); mysqli_resource->ptr = (void *)result; mysqli_resource->status = MYSQLI_STATUS_VALID; - MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry); + MYSQLI_RETVAL_RESOURCE(mysqli_resource, mysqli_result_class_entry); } /* }}} */ diff --git a/ext/mysqli/mysqli_arginfo.h b/ext/mysqli/mysqli_arginfo.h index 9f2785a19ef90..abf275eb869b6 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: df166a75b0b335aa8f938dc30e139d04ae8c1363 */ + * Stub hash: c9f340f48c4414f1b0cfa48ac9b7167a0a6991ef */ 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) @@ -431,67 +431,78 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli___construct, 0, 0, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, socket, IS_STRING, 1, "null") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_autocommit, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_autocommit, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, enable, _IS_BOOL, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_begin_transaction, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_begin_transaction, 0, 0, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, name, IS_STRING, 1, "null") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_change_user, 0, 0, 3) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_change_user, 0, 3, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, username, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, database, IS_STRING, 1) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_character_set_name, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_character_set_name, 0, 0, IS_STRING, 0) ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_close arginfo_class_mysqli_character_set_name +ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_close, 0, 0, 0) +ZEND_END_ARG_INFO() #define arginfo_class_mysqli_commit arginfo_class_mysqli_begin_transaction -#define arginfo_class_mysqli_connect arginfo_class_mysqli___construct +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_connect, 0, 0, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, hostname, IS_STRING, 1, "null") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, username, IS_STRING, 1, "null") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, password, IS_STRING, 1, "null") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, database, IS_STRING, 1, "null") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, port, IS_LONG, 1, "null") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, socket, IS_STRING, 1, "null") +ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_dump_debug_info arginfo_class_mysqli_character_set_name +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_dump_debug_info, 0, 0, _IS_BOOL, 0) +ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_debug, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, options, IS_STRING, 0) ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_get_charset arginfo_class_mysqli_character_set_name +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_get_charset, 0, 0, IS_OBJECT, 1) +ZEND_END_ARG_INFO() #define arginfo_class_mysqli_get_client_info arginfo_class_mysqli_character_set_name #if defined(MYSQLI_USE_MYSQLND) -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_get_connection_stats, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_get_connection_stats, 0, 0, IS_ARRAY, 0) ZEND_END_ARG_INFO() #endif #define arginfo_class_mysqli_get_server_info arginfo_class_mysqli_character_set_name -#define arginfo_class_mysqli_get_warnings arginfo_class_mysqli_character_set_name +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_mysqli_get_warnings, 0, 0, mysqli_warning, MAY_BE_FALSE) +ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_init arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_init arginfo_class_mysqli_close -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_kill, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_kill, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, process_id, IS_LONG, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_multi_query, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_multi_query, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0) ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_more_results arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_more_results arginfo_class_mysqli_dump_debug_info -#define arginfo_class_mysqli_next_result arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_next_result arginfo_class_mysqli_dump_debug_info -#define arginfo_class_mysqli_ping arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_ping arginfo_class_mysqli_dump_debug_info #if defined(MYSQLI_USE_MYSQLND) -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_poll, 0, 0, 4) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_mysqli_poll, 0, 4, MAY_BE_LONG|MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(1, read, IS_ARRAY, 1) ZEND_ARG_TYPE_INFO(1, error, IS_ARRAY, 1) ZEND_ARG_TYPE_INFO(1, reject, IS_ARRAY, 0) @@ -500,14 +511,16 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_poll, 0, 0, 4) ZEND_END_ARG_INFO() #endif -#define arginfo_class_mysqli_prepare arginfo_class_mysqli_multi_query +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_mysqli_prepare, 0, 1, mysqli_stmt, MAY_BE_FALSE) + ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0) +ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_query, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_mysqli_query, 0, 1, mysqli_result, MAY_BE_BOOL) ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, result_mode, IS_LONG, 0, "MYSQLI_STORE_RESULT") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_real_connect, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_real_connect, 0, 0, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, hostname, IS_STRING, 1, "null") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, username, IS_STRING, 1, "null") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, password, IS_STRING, 1, "null") @@ -517,19 +530,20 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_real_connect, 0, 0, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_real_escape_string, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_real_escape_string, 0, 1, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0) ZEND_END_ARG_INFO() #if defined(MYSQLI_USE_MYSQLND) -#define arginfo_class_mysqli_reap_async_query arginfo_class_mysqli_get_connection_stats +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_mysqli_reap_async_query, 0, 0, mysqli_result, MAY_BE_BOOL) +ZEND_END_ARG_INFO() #endif #define arginfo_class_mysqli_escape_string arginfo_class_mysqli_real_escape_string #define arginfo_class_mysqli_real_query arginfo_class_mysqli_multi_query -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_release_savepoint, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_release_savepoint, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0) ZEND_END_ARG_INFO() @@ -537,15 +551,15 @@ ZEND_END_ARG_INFO() #define arginfo_class_mysqli_savepoint arginfo_class_mysqli_release_savepoint -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_select_db, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_select_db, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, database, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_set_charset, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_set_charset, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, charset, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_options, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_options, 0, 2, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0) ZEND_ARG_INFO(0, value) ZEND_END_ARG_INFO() @@ -560,19 +574,22 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_ssl_set, 0, 0, 5) ZEND_ARG_TYPE_INFO(0, cipher_algos, IS_STRING, 1) ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_stat arginfo_class_mysqli_character_set_name +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_mysqli_stat, 0, 0, MAY_BE_STRING|MAY_BE_FALSE) +ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_stmt_init arginfo_class_mysqli_character_set_name +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_mysqli_stmt_init, 0, 0, mysqli_stmt, MAY_BE_FALSE) +ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_store_result, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_mysqli_store_result, 0, 0, mysqli_result, MAY_BE_FALSE) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "0") ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_thread_safe arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_thread_safe arginfo_class_mysqli_dump_debug_info -#define arginfo_class_mysqli_use_result arginfo_class_mysqli_character_set_name +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_mysqli_use_result, 0, 0, mysqli_result, MAY_BE_FALSE) +ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_refresh, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_refresh, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0) ZEND_END_ARG_INFO() @@ -581,46 +598,52 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_result___construct, 0, 0, 1) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, result_mode, IS_LONG, 0, "MYSQLI_STORE_RESULT") ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_result_close arginfo_class_mysqli_character_set_name +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_result_close, 0, 0, IS_VOID, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_result_free arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_result_free arginfo_class_mysqli_result_close -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_result_data_seek, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_result_data_seek, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0) ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_result_fetch_field arginfo_class_mysqli_character_set_name +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_mysqli_result_fetch_field, 0, 0, MAY_BE_OBJECT|MAY_BE_FALSE) +ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_result_fetch_fields arginfo_class_mysqli_character_set_name +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_result_fetch_fields, 0, 0, IS_ARRAY, 0) +ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_result_fetch_field_direct, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_mysqli_result_fetch_field_direct, 0, 1, MAY_BE_OBJECT|MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, index, IS_LONG, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_result_fetch_all, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_result_fetch_all, 0, 0, IS_ARRAY, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "MYSQLI_NUM") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_result_fetch_array, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_mysqli_result_fetch_array, 0, 0, MAY_BE_ARRAY|MAY_BE_NULL|MAY_BE_FALSE) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "MYSQLI_BOTH") ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_result_fetch_assoc arginfo_class_mysqli_character_set_name +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_mysqli_result_fetch_assoc, 0, 0, MAY_BE_ARRAY|MAY_BE_NULL|MAY_BE_FALSE) +ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_result_fetch_object, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_mysqli_result_fetch_object, 0, 0, MAY_BE_OBJECT|MAY_BE_NULL|MAY_BE_FALSE) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, class, IS_STRING, 0, "\"stdClass\"") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, constructor_args, IS_ARRAY, 0, "[]") ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_result_fetch_row arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_result_fetch_row arginfo_class_mysqli_result_fetch_assoc ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_mysqli_result_fetch_column, 0, 0, MAY_BE_NULL|MAY_BE_LONG|MAY_BE_DOUBLE|MAY_BE_STRING|MAY_BE_FALSE) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, column, IS_LONG, 0, "0") ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_result_field_seek arginfo_class_mysqli_result_fetch_field_direct +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_result_field_seek, 0, 1, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, index, IS_LONG, 0) +ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_result_free_result arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_result_free_result arginfo_class_mysqli_result_close ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_mysqli_result_getIterator, 0, 0, Iterator, 0) ZEND_END_ARG_INFO() @@ -630,64 +653,70 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_stmt___construct, 0, 0, 1) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, query, IS_STRING, 1, "null") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_stmt_attr_get, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_stmt_attr_get, 0, 1, IS_LONG, 0) ZEND_ARG_TYPE_INFO(0, attribute, IS_LONG, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_stmt_attr_set, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_stmt_attr_set, 0, 2, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, attribute, IS_LONG, 0) ZEND_ARG_TYPE_INFO(0, value, IS_LONG, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_stmt_bind_param, 0, 0, 1) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_stmt_bind_param, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, types, IS_STRING, 0) ZEND_ARG_VARIADIC_TYPE_INFO(1, vars, IS_MIXED, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_stmt_bind_result, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_stmt_bind_result, 0, 0, _IS_BOOL, 0) ZEND_ARG_VARIADIC_TYPE_INFO(1, vars, IS_MIXED, 0) ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_stmt_close arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_stmt_close arginfo_class_mysqli_close -#define arginfo_class_mysqli_stmt_data_seek arginfo_class_mysqli_result_data_seek +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_stmt_data_seek, 0, 1, IS_VOID, 0) + ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0) +ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_stmt_execute, 0, 0, 0) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_stmt_execute, 0, 0, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, params, IS_ARRAY, 1, "null") ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_stmt_fetch arginfo_class_mysqli_character_set_name +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_stmt_fetch, 0, 0, _IS_BOOL, 1) +ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_stmt_get_warnings arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_stmt_get_warnings arginfo_class_mysqli_get_warnings -#define arginfo_class_mysqli_stmt_result_metadata arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_stmt_result_metadata arginfo_class_mysqli_use_result #if defined(MYSQLI_USE_MYSQLND) -#define arginfo_class_mysqli_stmt_more_results arginfo_class_mysqli_get_connection_stats +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_stmt_more_results, 0, 0, _IS_BOOL, 0) +ZEND_END_ARG_INFO() #endif -#define arginfo_class_mysqli_stmt_next_result arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_stmt_next_result arginfo_class_mysqli_dump_debug_info -#define arginfo_class_mysqli_stmt_num_rows arginfo_class_mysqli_character_set_name +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_mysqli_stmt_num_rows, 0, 0, MAY_BE_LONG|MAY_BE_STRING) +ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_stmt_send_long_data, 0, 0, 2) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_stmt_send_long_data, 0, 2, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, param_num, IS_LONG, 0) ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0) ZEND_END_ARG_INFO() -#define arginfo_class_mysqli_stmt_free_result arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_stmt_free_result arginfo_class_mysqli_result_close -#define arginfo_class_mysqli_stmt_reset arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_stmt_reset arginfo_class_mysqli_dump_debug_info #define arginfo_class_mysqli_stmt_prepare arginfo_class_mysqli_multi_query -#define arginfo_class_mysqli_stmt_store_result arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_stmt_store_result arginfo_class_mysqli_dump_debug_info #if defined(MYSQLI_USE_MYSQLND) -#define arginfo_class_mysqli_stmt_get_result arginfo_class_mysqli_get_connection_stats +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_mysqli_stmt_get_result, 0, 0, mysqli_result, MAY_BE_FALSE) +ZEND_END_ARG_INFO() #endif -#define arginfo_class_mysqli_warning___construct arginfo_class_mysqli_character_set_name +#define arginfo_class_mysqli_warning___construct arginfo_class_mysqli_close #define arginfo_class_mysqli_warning_next arginfo_mysqli_thread_safe diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c index cc21371e20fb3..d41dcb7afe6f8 100644 --- a/ext/mysqli/mysqli_nonapi.c +++ b/ext/mysqli/mysqli_nonapi.c @@ -355,16 +355,13 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, bool is_real_connect, b mysql->multi_query = 0; - if (!object) { - MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_link_class_entry); - } else { + if (object) { ZEND_ASSERT(instanceof_function(Z_OBJCE_P(object), mysqli_link_class_entry)); (Z_MYSQLI_P(object))->ptr = mysqli_resource; - } - if (!is_real_connect) { - return; - } else { RETURN_TRUE; + } else { + MYSQLI_RETVAL_RESOURCE(mysqli_resource, mysqli_link_class_entry); + return; } err: @@ -759,7 +756,7 @@ PHP_FUNCTION(mysqli_query) mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); mysqli_resource->ptr = (void *)result; mysqli_resource->status = MYSQLI_STATUS_VALID; - MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry); + MYSQLI_RETVAL_RESOURCE(mysqli_resource, mysqli_result_class_entry); } /* }}} */ @@ -993,7 +990,7 @@ PHP_FUNCTION(mysqli_reap_async_query) mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); mysqli_resource->ptr = (void *)result; mysqli_resource->status = MYSQLI_STATUS_VALID; - MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry); + MYSQLI_RETVAL_RESOURCE(mysqli_resource, mysqli_result_class_entry); } /* }}} */ @@ -1018,7 +1015,7 @@ PHP_FUNCTION(mysqli_stmt_get_result) mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); mysqli_resource->ptr = (void *)result; mysqli_resource->status = MYSQLI_STATUS_VALID; - MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry); + MYSQLI_RETVAL_RESOURCE(mysqli_resource, mysqli_result_class_entry); } /* }}} */ #endif @@ -1049,7 +1046,7 @@ PHP_FUNCTION(mysqli_get_warnings) mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); mysqli_resource->ptr = mysqli_resource->info = (void *)w; mysqli_resource->status = MYSQLI_STATUS_VALID; - MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry); + MYSQLI_RETVAL_RESOURCE(mysqli_resource, mysqli_warning_class_entry); } /* }}} */ @@ -1075,7 +1072,7 @@ PHP_FUNCTION(mysqli_stmt_get_warnings) mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); mysqli_resource->ptr = mysqli_resource->info = (void *)w; mysqli_resource->status = MYSQLI_STATUS_VALID; - MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry); + MYSQLI_RETVAL_RESOURCE(mysqli_resource, mysqli_warning_class_entry); } /* }}} */ diff --git a/ext/mysqli/php_mysqli_structs.h b/ext/mysqli/php_mysqli_structs.h index 5e117eee640b0..1c6b42412d1a6 100644 --- a/ext/mysqli/php_mysqli_structs.h +++ b/ext/mysqli/php_mysqli_structs.h @@ -190,7 +190,7 @@ extern void php_mysqli_fetch_into_hash_aux(zval *return_value, MYSQL_RES * resul #define MYSQLI_REGISTER_RESOURCE_EX(__ptr, __zval) \ (Z_MYSQLI_P(__zval))->ptr = __ptr; -#define MYSQLI_RETURN_RESOURCE(__ptr, __ce) \ +#define MYSQLI_RETVAL_RESOURCE(__ptr, __ce) \ RETVAL_OBJ(mysqli_objects_new(__ce)); \ MYSQLI_REGISTER_RESOURCE_EX(__ptr, return_value) diff --git a/ext/mysqli/tests/mysqli_connect_twice.phpt b/ext/mysqli/tests/mysqli_connect_twice.phpt index 03c5fafeee78b..c179d003335b8 100644 --- a/ext/mysqli/tests/mysqli_connect_twice.phpt +++ b/ext/mysqli/tests/mysqli_connect_twice.phpt @@ -59,14 +59,14 @@ require_once('skipifconnectfailure.inc'); mysqli_close($link); - if (NULL !== ($tmp = $link->connect($host, $user, $passwd, $db, $port, $socket))) - printf("[013] Expecting NULL got %s/%s\n", gettype($tmp), $tmp); + if (true !== ($tmp = $link->connect($host, $user, $passwd, $db, $port, $socket))) + printf("[013] Expecting true got %s/%s\n", gettype($tmp), $tmp); if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket)) printf("[014] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $host, $user, $db, $port, $socket); - if (NULL !== ($tmp = $link->connect($host, $user, $passwd, $db, $port, $socket))) + if (true !== ($tmp = $link->connect($host, $user, $passwd, $db, $port, $socket))) printf("[015] Expecting NULL got %s/%s\n", gettype($tmp), $tmp); print "done!"; diff --git a/ext/mysqli/tests/mysqli_pconn_conn_multiple.phpt b/ext/mysqli/tests/mysqli_pconn_conn_multiple.phpt index 1a358cceaa80f..ab6052a7002ec 100644 --- a/ext/mysqli/tests/mysqli_pconn_conn_multiple.phpt +++ b/ext/mysqli/tests/mysqli_pconn_conn_multiple.phpt @@ -65,15 +65,15 @@ mysqli.max_links=-1 mysqli_close($link); - if (NULL !== ($tmp = $link->connect($phost, $user, $passwd, $db, $port, $socket))) + if (true !== ($tmp = $link->connect($phost, $user, $passwd, $db, $port, $socket))) printf("[013] Expecting NULL got %s/%s\n", gettype($tmp), $tmp); if (!$link = mysqli_connect($phost, $user, $passwd, $db, $port, $socket)) printf("[014] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $phost, $user, $db, $port, $socket); - if (NULL !== ($tmp = $link->connect($host, $user, $passwd, $db, $port, $socket))) - printf("[015] Expecting NULL got %s/%s\n", gettype($tmp), $tmp); + if (true !== ($tmp = $link->connect($host, $user, $passwd, $db, $port, $socket))) + printf("[015] Expecting true got %s/%s\n", gettype($tmp), $tmp); printf("Flipping phost/host order\n"); @@ -127,15 +127,15 @@ mysqli.max_links=-1 mysqli_close($link); - if (NULL !== ($tmp = $link->connect($host, $user, $passwd, $db, $port, $socket))) - printf("[028] Expecting NULL got %s/%s\n", gettype($tmp), $tmp); + if (true !== ($tmp = $link->connect($host, $user, $passwd, $db, $port, $socket))) + printf("[028] Expecting true got %s/%s\n", gettype($tmp), $tmp); if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket)) printf("[029] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $host, $user, $db, $port, $socket); - if (NULL !== ($tmp = $link->connect($phost, $user, $passwd, $db, $port, $socket))) - printf("[030] Expecting NULL got %s/%s\n", gettype($tmp), $tmp); + if (true !== ($tmp = $link->connect($phost, $user, $passwd, $db, $port, $socket))) + printf("[030] Expecting true got %s/%s\n", gettype($tmp), $tmp); print "done!"; ?> diff --git a/ext/mysqli/tests/mysqli_pconn_twice.phpt b/ext/mysqli/tests/mysqli_pconn_twice.phpt index 343c5f2e8ad23..c7211ca06e190 100644 --- a/ext/mysqli/tests/mysqli_pconn_twice.phpt +++ b/ext/mysqli/tests/mysqli_pconn_twice.phpt @@ -52,15 +52,15 @@ mysqli.max_links=-1 mysqli_close($link); - if (NULL !== ($tmp = $link->connect($host, $user, $passwd, $db, $port, $socket))) - printf("[013] Expecting NULL got %s/%s\n", gettype($tmp), $tmp); + if (true !== ($tmp = $link->connect($host, $user, $passwd, $db, $port, $socket))) + printf("[013] Expecting true got %s/%s\n", gettype($tmp), $tmp); if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket)) printf("[014] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", $host, $user, $db, $port, $socket); - if (NULL !== ($tmp = $link->connect($host, $user, $passwd, $db, $port, $socket))) - printf("[015] Expecting NULL got %s/%s\n", gettype($tmp), $tmp); + if (true !== ($tmp = $link->connect($host, $user, $passwd, $db, $port, $socket))) + printf("[015] Expecting true got %s/%s\n", gettype($tmp), $tmp); print "done!"; ?>