diff options
-rw-r--r-- | .gitignore | 9 | ||||
-rw-r--r-- | Makefile | 12 | ||||
-rw-r--r-- | mysqli_PHPINFO | 21 | ||||
-rw-r--r-- | mysqli_REFLECTION | 1729 | ||||
-rw-r--r-- | mysqlnd_PHPINFO | 17 | ||||
-rw-r--r-- | mysqlnd_REFLECTION | 43 | ||||
-rw-r--r-- | mysqlnd_ngen-fix.patch | 65 | ||||
-rw-r--r-- | pdo_mysql_PHPINFO | 8 | ||||
-rw-r--r-- | pdo_mysql_REFLECTION | 14 | ||||
-rw-r--r-- | php-pecl-mysqlnd-ngen.spec | 322 |
10 files changed, 2240 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..01f0400 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +clog +package-*.xml +*.tgz +*.tar.bz2 +*.tar.gz +*.tar.xz +*.tar.xz.asc +*.src.rpm +*/*rpm diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bc75f85 --- /dev/null +++ b/Makefile @@ -0,0 +1,12 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../../../common/Makefile + +refl: + php80 --re mysqlnd >mysqlnd_REFLECTION + php80 --ri mysqlnd >mysqlnd_PHPINFO + php80 --re mysqli >mysqli_REFLECTION + php80 --ri mysqli >mysqli_PHPINFO + php80 --re pdo_mysql >pdo_mysql_REFLECTION + php80 --ri pdo_mysql >pdo_mysql_PHPINFO + diff --git a/mysqli_PHPINFO b/mysqli_PHPINFO new file mode 100644 index 0000000..6a79a8b --- /dev/null +++ b/mysqli_PHPINFO @@ -0,0 +1,21 @@ + +mysqli + +MysqlI Support => enabled +Client API library version => mysqlnd 8.0.25 +Active Persistent Links => 0 +Inactive Persistent Links => 0 +Active Links => 0 + +Directive => Local Value => Master Value +mysqli.max_links => Unlimited => Unlimited +mysqli.max_persistent => Unlimited => Unlimited +mysqli.allow_persistent => On => On +mysqli.rollback_on_cached_plink => Off => Off +mysqli.default_host => no value => no value +mysqli.default_user => no value => no value +mysqli.default_pw => no value => no value +mysqli.default_port => 3306 => 3306 +mysqli.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock +mysqli.reconnect => Off => Off +mysqli.allow_local_infile => Off => Off diff --git a/mysqli_REFLECTION b/mysqli_REFLECTION new file mode 100644 index 0000000..5b49697 --- /dev/null +++ b/mysqli_REFLECTION @@ -0,0 +1,1729 @@ +Extension [ <persistent> extension #60 mysqli version 8.0.25 ] { + + - Dependencies { + Dependency [ spl (Required) ] + Dependency [ mysqlnd (Required) ] + } + + - INI { + Entry [ mysqli.max_links <SYSTEM> ] + Current = '-1' + } + Entry [ mysqli.max_persistent <SYSTEM> ] + Current = '-1' + } + Entry [ mysqli.allow_persistent <SYSTEM> ] + Current = '1' + } + Entry [ mysqli.rollback_on_cached_plink <SYSTEM> ] + Current = '0' + } + Entry [ mysqli.default_host <ALL> ] + Current = '' + } + Entry [ mysqli.default_user <ALL> ] + Current = '' + } + Entry [ mysqli.default_pw <ALL> ] + Current = '' + } + Entry [ mysqli.default_port <ALL> ] + Current = '3306' + } + Entry [ mysqli.default_socket <ALL> ] + Current = '/var/lib/mysql/mysql.sock' + } + Entry [ mysqli.reconnect <SYSTEM> ] + Current = '0' + } + Entry [ mysqli.allow_local_infile <SYSTEM> ] + Current = '0' + } + } + + - Constants [111] { + Constant [ int MYSQLI_READ_DEFAULT_GROUP ] { 5 } + Constant [ int MYSQLI_READ_DEFAULT_FILE ] { 4 } + Constant [ int MYSQLI_OPT_CONNECT_TIMEOUT ] { 0 } + Constant [ int MYSQLI_OPT_LOCAL_INFILE ] { 8 } + Constant [ int MYSQLI_INIT_COMMAND ] { 3 } + Constant [ int MYSQLI_OPT_READ_TIMEOUT ] { 11 } + Constant [ int MYSQLI_OPT_NET_CMD_BUFFER_SIZE ] { 202 } + Constant [ int MYSQLI_OPT_NET_READ_BUFFER_SIZE ] { 203 } + Constant [ int MYSQLI_OPT_INT_AND_FLOAT_NATIVE ] { 201 } + Constant [ int MYSQLI_OPT_SSL_VERIFY_SERVER_CERT ] { 21 } + Constant [ int MYSQLI_SERVER_PUBLIC_KEY ] { 35 } + Constant [ int MYSQLI_CLIENT_SSL ] { 2048 } + Constant [ int MYSQLI_CLIENT_COMPRESS ] { 32 } + Constant [ int MYSQLI_CLIENT_INTERACTIVE ] { 1024 } + Constant [ int MYSQLI_CLIENT_IGNORE_SPACE ] { 256 } + Constant [ int MYSQLI_CLIENT_NO_SCHEMA ] { 16 } + Constant [ int MYSQLI_CLIENT_FOUND_ROWS ] { 2 } + Constant [ int MYSQLI_CLIENT_SSL_VERIFY_SERVER_CERT ] { 1073741824 } + Constant [ int MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT ] { 64 } + Constant [ int MYSQLI_CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS ] { 4194304 } + Constant [ int MYSQLI_OPT_CAN_HANDLE_EXPIRED_PASSWORDS ] { 37 } + Constant [ int MYSQLI_STORE_RESULT ] { 0 } + Constant [ int MYSQLI_USE_RESULT ] { 1 } + Constant [ int MYSQLI_ASYNC ] { 8 } + Constant [ int MYSQLI_STORE_RESULT_COPY_DATA ] { 16 } + Constant [ int MYSQLI_ASSOC ] { 1 } + Constant [ int MYSQLI_NUM ] { 2 } + Constant [ int MYSQLI_BOTH ] { 3 } + Constant [ int MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH ] { 0 } + Constant [ int MYSQLI_STMT_ATTR_CURSOR_TYPE ] { 1 } + Constant [ int MYSQLI_CURSOR_TYPE_NO_CURSOR ] { 0 } + Constant [ int MYSQLI_CURSOR_TYPE_READ_ONLY ] { 1 } + Constant [ int MYSQLI_CURSOR_TYPE_FOR_UPDATE ] { 2 } + Constant [ int MYSQLI_CURSOR_TYPE_SCROLLABLE ] { 4 } + Constant [ int MYSQLI_STMT_ATTR_PREFETCH_ROWS ] { 2 } + Constant [ int MYSQLI_NOT_NULL_FLAG ] { 1 } + Constant [ int MYSQLI_PRI_KEY_FLAG ] { 2 } + Constant [ int MYSQLI_UNIQUE_KEY_FLAG ] { 4 } + Constant [ int MYSQLI_MULTIPLE_KEY_FLAG ] { 8 } + Constant [ int MYSQLI_BLOB_FLAG ] { 16 } + Constant [ int MYSQLI_UNSIGNED_FLAG ] { 32 } + Constant [ int MYSQLI_ZEROFILL_FLAG ] { 64 } + Constant [ int MYSQLI_AUTO_INCREMENT_FLAG ] { 512 } + Constant [ int MYSQLI_TIMESTAMP_FLAG ] { 1024 } + Constant [ int MYSQLI_SET_FLAG ] { 2048 } + Constant [ int MYSQLI_NUM_FLAG ] { 32768 } + Constant [ int MYSQLI_PART_KEY_FLAG ] { 16384 } + Constant [ int MYSQLI_GROUP_FLAG ] { 32768 } + Constant [ int MYSQLI_ENUM_FLAG ] { 256 } + Constant [ int MYSQLI_BINARY_FLAG ] { 128 } + Constant [ int MYSQLI_NO_DEFAULT_VALUE_FLAG ] { 4096 } + Constant [ int MYSQLI_ON_UPDATE_NOW_FLAG ] { 8192 } + Constant [ int MYSQLI_TYPE_DECIMAL ] { 0 } + Constant [ int MYSQLI_TYPE_TINY ] { 1 } + Constant [ int MYSQLI_TYPE_SHORT ] { 2 } + Constant [ int MYSQLI_TYPE_LONG ] { 3 } + Constant [ int MYSQLI_TYPE_FLOAT ] { 4 } + Constant [ int MYSQLI_TYPE_DOUBLE ] { 5 } + Constant [ int MYSQLI_TYPE_NULL ] { 6 } + Constant [ int MYSQLI_TYPE_TIMESTAMP ] { 7 } + Constant [ int MYSQLI_TYPE_LONGLONG ] { 8 } + Constant [ int MYSQLI_TYPE_INT24 ] { 9 } + Constant [ int MYSQLI_TYPE_DATE ] { 10 } + Constant [ int MYSQLI_TYPE_TIME ] { 11 } + Constant [ int MYSQLI_TYPE_DATETIME ] { 12 } + Constant [ int MYSQLI_TYPE_YEAR ] { 13 } + Constant [ int MYSQLI_TYPE_NEWDATE ] { 14 } + Constant [ int MYSQLI_TYPE_ENUM ] { 247 } + Constant [ int MYSQLI_TYPE_SET ] { 248 } + Constant [ int MYSQLI_TYPE_TINY_BLOB ] { 249 } + Constant [ int MYSQLI_TYPE_MEDIUM_BLOB ] { 250 } + Constant [ int MYSQLI_TYPE_LONG_BLOB ] { 251 } + Constant [ int MYSQLI_TYPE_BLOB ] { 252 } + Constant [ int MYSQLI_TYPE_VAR_STRING ] { 253 } + Constant [ int MYSQLI_TYPE_STRING ] { 254 } + Constant [ int MYSQLI_TYPE_CHAR ] { 1 } + Constant [ int MYSQLI_TYPE_INTERVAL ] { 247 } + Constant [ int MYSQLI_TYPE_GEOMETRY ] { 255 } + Constant [ int MYSQLI_TYPE_JSON ] { 245 } + Constant [ int MYSQLI_TYPE_NEWDECIMAL ] { 246 } + Constant [ int MYSQLI_TYPE_BIT ] { 16 } + Constant [ int MYSQLI_SET_CHARSET_NAME ] { 7 } + Constant [ int MYSQLI_SET_CHARSET_DIR ] { 6 } + Constant [ int MYSQLI_NO_DATA ] { 100 } + Constant [ int MYSQLI_DATA_TRUNCATED ] { 101 } + Constant [ int MYSQLI_REPORT_INDEX ] { 4 } + Constant [ int MYSQLI_REPORT_ERROR ] { 1 } + Constant [ int MYSQLI_REPORT_STRICT ] { 2 } + Constant [ int MYSQLI_REPORT_ALL ] { 255 } + Constant [ int MYSQLI_REPORT_OFF ] { 0 } + Constant [ int MYSQLI_DEBUG_TRACE_ENABLED ] { 0 } + Constant [ int MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED ] { 16 } + Constant [ int MYSQLI_SERVER_QUERY_NO_INDEX_USED ] { 32 } + Constant [ int MYSQLI_SERVER_QUERY_WAS_SLOW ] { 2048 } + Constant [ int MYSQLI_SERVER_PS_OUT_PARAMS ] { 4096 } + Constant [ int MYSQLI_REFRESH_GRANT ] { 1 } + Constant [ int MYSQLI_REFRESH_LOG ] { 2 } + Constant [ int MYSQLI_REFRESH_TABLES ] { 4 } + Constant [ int MYSQLI_REFRESH_HOSTS ] { 8 } + Constant [ int MYSQLI_REFRESH_STATUS ] { 16 } + Constant [ int MYSQLI_REFRESH_THREADS ] { 32 } + Constant [ int MYSQLI_REFRESH_SLAVE ] { 64 } + Constant [ int MYSQLI_REFRESH_MASTER ] { 128 } + Constant [ int MYSQLI_REFRESH_BACKUP_LOG ] { 2097152 } + Constant [ int MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT ] { 1 } + Constant [ int MYSQLI_TRANS_START_READ_WRITE ] { 2 } + Constant [ int MYSQLI_TRANS_START_READ_ONLY ] { 4 } + Constant [ int MYSQLI_TRANS_COR_AND_CHAIN ] { 1 } + Constant [ int MYSQLI_TRANS_COR_AND_NO_CHAIN ] { 2 } + Constant [ int MYSQLI_TRANS_COR_RELEASE ] { 4 } + Constant [ int MYSQLI_TRANS_COR_NO_RELEASE ] { 8 } + } + + - Functions { + Function [ <internal:mysqli> function mysqli_affected_rows ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ string|int ] + } + Function [ <internal:mysqli> function mysqli_autocommit ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> bool $enable ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_begin_transaction ] { + + - Parameters [3] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <optional> int $flags = 0 ] + Parameter #2 [ <optional> ?string $name = null ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_change_user ] { + + - Parameters [4] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> string $username ] + Parameter #2 [ <required> string $password ] + Parameter #3 [ <required> ?string $database ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_character_set_name ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ ?string ] + } + Function [ <internal:mysqli> function mysqli_close ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_commit ] { + + - Parameters [3] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <optional> int $flags = -1 ] + Parameter #2 [ <optional> ?string $name = null ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_connect ] { + + - Parameters [6] { + Parameter #0 [ <optional> ?string $hostname = null ] + Parameter #1 [ <optional> ?string $username = null ] + Parameter #2 [ <optional> ?string $password = null ] + Parameter #3 [ <optional> ?string $database = null ] + Parameter #4 [ <optional> ?int $port = null ] + Parameter #5 [ <optional> ?string $socket = null ] + } + - Return [ mysqli|false|null ] + } + Function [ <internal:mysqli> function mysqli_connect_errno ] { + + - Parameters [0] { + } + - Return [ int ] + } + Function [ <internal:mysqli> function mysqli_connect_error ] { + + - Parameters [0] { + } + - Return [ ?string ] + } + Function [ <internal:mysqli> function mysqli_data_seek ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli_result $result ] + Parameter #1 [ <required> int $offset ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_dump_debug_info ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_debug ] { + + - Parameters [1] { + Parameter #0 [ <required> string $options ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_errno ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ int ] + } + Function [ <internal:mysqli> function mysqli_error ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ ?string ] + } + Function [ <internal:mysqli> function mysqli_error_list ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ array ] + } + Function [ <internal:mysqli> function mysqli_stmt_execute ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_execute ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_fetch_field ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_result $result ] + } + - Return [ object|false ] + } + Function [ <internal:mysqli> function mysqli_fetch_fields ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_result $result ] + } + - Return [ array ] + } + Function [ <internal:mysqli> function mysqli_fetch_field_direct ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli_result $result ] + Parameter #1 [ <required> int $index ] + } + - Return [ object|false ] + } + Function [ <internal:mysqli> function mysqli_fetch_lengths ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_result $result ] + } + - Return [ array|false ] + } + Function [ <internal:mysqli> function mysqli_fetch_all ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli_result $result ] + Parameter #1 [ <optional> int $mode = MYSQLI_NUM ] + } + - Return [ array|false ] + } + Function [ <internal:mysqli> function mysqli_fetch_array ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli_result $result ] + Parameter #1 [ <optional> int $mode = MYSQLI_BOTH ] + } + - Return [ array|false|null ] + } + Function [ <internal:mysqli> function mysqli_fetch_assoc ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_result $result ] + } + - Return [ ?array ] + } + Function [ <internal:mysqli> function mysqli_fetch_object ] { + + - Parameters [3] { + Parameter #0 [ <required> mysqli_result $result ] + Parameter #1 [ <optional> string $class = "stdClass" ] + Parameter #2 [ <optional> array $constructor_args = [] ] + } + - Return [ ?object ] + } + Function [ <internal:mysqli> function mysqli_fetch_row ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_result $result ] + } + - Return [ ?array ] + } + Function [ <internal:mysqli> function mysqli_field_count ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ int ] + } + Function [ <internal:mysqli> function mysqli_field_seek ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli_result $result ] + Parameter #1 [ <required> int $index ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_field_tell ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_result $result ] + } + - Return [ int ] + } + Function [ <internal:mysqli> function mysqli_free_result ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_result $result ] + } + - Return [ void ] + } + Function [ <internal:mysqli> function mysqli_get_connection_stats ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ array ] + } + Function [ <internal:mysqli> function mysqli_get_client_stats ] { + + - Parameters [0] { + } + - Return [ array ] + } + Function [ <internal:mysqli> function mysqli_get_charset ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ ?object ] + } + Function [ <internal:mysqli> function mysqli_get_client_info ] { + + - Parameters [1] { + Parameter #0 [ <optional> ?mysqli $mysql = null ] + } + - Return [ ?string ] + } + Function [ <internal:mysqli> function mysqli_get_client_version ] { + + - Parameters [0] { + } + - Return [ int ] + } + Function [ <internal:mysqli> function mysqli_get_links_stats ] { + + - Parameters [0] { + } + - Return [ array ] + } + Function [ <internal:mysqli> function mysqli_get_host_info ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ string ] + } + Function [ <internal:mysqli> function mysqli_get_proto_info ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ int ] + } + Function [ <internal:mysqli> function mysqli_get_server_info ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ string ] + } + Function [ <internal:mysqli> function mysqli_get_server_version ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ int ] + } + Function [ <internal:mysqli> function mysqli_get_warnings ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ mysqli_warning|false ] + } + Function [ <internal:mysqli> function mysqli_init ] { + + - Parameters [0] { + } + - Return [ mysqli|false ] + } + Function [ <internal:mysqli> function mysqli_info ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ ?string ] + } + Function [ <internal:mysqli> function mysqli_insert_id ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ string|int ] + } + Function [ <internal:mysqli> function mysqli_kill ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> int $process_id ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_more_results ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_multi_query ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> string $query ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_next_result ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_num_fields ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_result $result ] + } + - Return [ int ] + } + Function [ <internal:mysqli> function mysqli_num_rows ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_result $result ] + } + - Return [ string|int ] + } + Function [ <internal:mysqli> function mysqli_options ] { + + - Parameters [3] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> int $option ] + Parameter #2 [ <required> $value ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_ping ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_poll ] { + + - Parameters [5] { + Parameter #0 [ <required> ?array &$read ] + Parameter #1 [ <required> ?array &$write ] + Parameter #2 [ <required> array &$error ] + Parameter #3 [ <required> int $seconds ] + Parameter #4 [ <optional> int $microseconds = 0 ] + } + - Return [ int|false ] + } + Function [ <internal:mysqli> function mysqli_prepare ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> string $query ] + } + - Return [ mysqli_stmt|false ] + } + Function [ <internal:mysqli> function mysqli_report ] { + + - Parameters [1] { + Parameter #0 [ <required> int $flags ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_query ] { + + - Parameters [3] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> string $query ] + Parameter #2 [ <optional> int $result_mode = MYSQLI_STORE_RESULT ] + } + - Return [ mysqli_result|bool ] + } + Function [ <internal:mysqli> function mysqli_real_connect ] { + + - Parameters [8] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <optional> ?string $hostname = null ] + Parameter #2 [ <optional> ?string $username = null ] + Parameter #3 [ <optional> ?string $password = null ] + Parameter #4 [ <optional> ?string $database = null ] + Parameter #5 [ <optional> ?int $port = null ] + Parameter #6 [ <optional> ?string $socket = null ] + Parameter #7 [ <optional> int $flags = 0 ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_real_escape_string ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> string $string ] + } + - Return [ string ] + } + Function [ <internal:mysqli> function mysqli_real_query ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> string $query ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_reap_async_query ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ mysqli_result|bool ] + } + Function [ <internal:mysqli> function mysqli_release_savepoint ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> string $name ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_rollback ] { + + - Parameters [3] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <optional> int $flags = 0 ] + Parameter #2 [ <optional> ?string $name = null ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_savepoint ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> string $name ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_select_db ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> string $database ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_set_charset ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> string $charset ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_stmt_affected_rows ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ string|int ] + } + Function [ <internal:mysqli> function mysqli_stmt_attr_get ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli_stmt $statement ] + Parameter #1 [ <required> int $attribute ] + } + - Return [ int ] + } + Function [ <internal:mysqli> function mysqli_stmt_attr_set ] { + + - Parameters [3] { + Parameter #0 [ <required> mysqli_stmt $statement ] + Parameter #1 [ <required> int $attribute ] + Parameter #2 [ <required> int $value ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_stmt_bind_param ] { + + - Parameters [3] { + Parameter #0 [ <required> mysqli_stmt $statement ] + Parameter #1 [ <required> string $types ] + Parameter #2 [ <optional> mixed &...$vars ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_stmt_bind_result ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli_stmt $statement ] + Parameter #1 [ <optional> mixed &...$vars ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_stmt_close ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_stmt_data_seek ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli_stmt $statement ] + Parameter #1 [ <required> int $offset ] + } + - Return [ void ] + } + Function [ <internal:mysqli> function mysqli_stmt_errno ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ int ] + } + Function [ <internal:mysqli> function mysqli_stmt_error ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ ?string ] + } + Function [ <internal:mysqli> function mysqli_stmt_error_list ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ array ] + } + Function [ <internal:mysqli> function mysqli_stmt_fetch ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ ?bool ] + } + Function [ <internal:mysqli> function mysqli_stmt_field_count ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ int ] + } + Function [ <internal:mysqli> function mysqli_stmt_free_result ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ void ] + } + Function [ <internal:mysqli> function mysqli_stmt_get_result ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ mysqli_result|false ] + } + Function [ <internal:mysqli> function mysqli_stmt_get_warnings ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ mysqli_warning|false ] + } + Function [ <internal:mysqli> function mysqli_stmt_init ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ mysqli_stmt|false ] + } + Function [ <internal:mysqli> function mysqli_stmt_insert_id ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ string|int ] + } + Function [ <internal:mysqli> function mysqli_stmt_more_results ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_stmt_next_result ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_stmt_num_rows ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ string|int ] + } + Function [ <internal:mysqli> function mysqli_stmt_param_count ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ int ] + } + Function [ <internal:mysqli> function mysqli_stmt_prepare ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli_stmt $statement ] + Parameter #1 [ <required> string $query ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_stmt_reset ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_stmt_result_metadata ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ mysqli_result|false ] + } + Function [ <internal:mysqli> function mysqli_stmt_send_long_data ] { + + - Parameters [3] { + Parameter #0 [ <required> mysqli_stmt $statement ] + Parameter #1 [ <required> int $param_num ] + Parameter #2 [ <required> string $data ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_stmt_store_result ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_stmt_sqlstate ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli_stmt $statement ] + } + - Return [ ?string ] + } + Function [ <internal:mysqli> function mysqli_sqlstate ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ ?string ] + } + Function [ <internal:mysqli> function mysqli_ssl_set ] { + + - Parameters [6] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> string $key ] + Parameter #2 [ <required> string $certificate ] + Parameter #3 [ <required> string $ca_certificate ] + Parameter #4 [ <required> string $ca_path ] + Parameter #5 [ <required> string $cipher_algos ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_stat ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ string|false ] + } + Function [ <internal:mysqli> function mysqli_store_result ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <optional> int $mode = 0 ] + } + - Return [ mysqli_result|false ] + } + Function [ <internal:mysqli> function mysqli_thread_id ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ int ] + } + Function [ <internal:mysqli> function mysqli_thread_safe ] { + + - Parameters [0] { + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_use_result ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ mysqli_result|false ] + } + Function [ <internal:mysqli> function mysqli_warning_count ] { + + - Parameters [1] { + Parameter #0 [ <required> mysqli $mysql ] + } + - Return [ int ] + } + Function [ <internal:mysqli> function mysqli_refresh ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> int $flags ] + } + - Return [ bool ] + } + Function [ <internal:mysqli> function mysqli_escape_string ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> string $string ] + } + - Return [ string ] + } + Function [ <internal:mysqli> function mysqli_set_opt ] { + + - Parameters [3] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <required> int $option ] + Parameter #2 [ <required> $value ] + } + - Return [ bool ] + } + } + + - Classes [6] { + Class [ <internal:mysqli> final class mysqli_sql_exception extends RuntimeException implements Throwable, Stringable ] { + + - Constants [0] { + } + + - Static properties [0] { + } + + - Static methods [0] { + } + + - Properties [5] { + Property [ protected $message = '' ] + Property [ protected $file = NULL ] + Property [ protected $line = NULL ] + Property [ protected $code = 0 ] + Property [ protected $sqlstate = '00000' ] + } + + - Methods [10] { + Method [ <internal:Core, inherits Exception, ctor> public method __construct ] { + + - Parameters [3] { + Parameter #0 [ <optional> string $message = "" ] + Parameter #1 [ <optional> int $code = 0 ] + Parameter #2 [ <optional> ?Throwable $previous = null ] + } + } + + Method [ <internal:Core, inherits Exception> public method __wakeup ] { + + - Parameters [0] { + } + } + + Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getMessage ] { + + - Parameters [0] { + } + - Return [ string ] + } + + Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getCode ] { + + - Parameters [0] { + } + } + + Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getFile ] { + + - Parameters [0] { + } + - Return [ string ] + } + + Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getLine ] { + + - Parameters [0] { + } + - Return [ int ] + } + + Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getTrace ] { + + - Parameters [0] { + } + - Return [ array ] + } + + Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getPrevious ] { + + - Parameters [0] { + } + - Return [ ?Throwable ] + } + + Method [ <internal:Core, inherits Exception, prototype Throwable> final public method getTraceAsString ] { + + - Parameters [0] { + } + - Return [ string ] + } + + Method [ <internal:Core, inherits Exception, prototype Stringable> public method __toString ] { + + - Parameters [0] { + } + - Return [ string ] + } + } + } + + Class [ <internal:mysqli> final class mysqli_driver ] { + + - Constants [0] { + } + + - Static properties [0] { + } + + - Static methods [0] { + } + + - Properties [5] { + Property [ public $client_info = NULL ] + Property [ public $client_version = NULL ] + Property [ public $driver_version = NULL ] + Property [ public $reconnect = NULL ] + Property [ public $report_mode = NULL ] + } + + - Methods [0] { + } + } + + Class [ <internal:mysqli> class mysqli ] { + + - Constants [0] { + } + + - Static properties [0] { + } + + - Static methods [1] { + Method [ <internal:mysqli> static public method poll ] { + + - Parameters [5] { + Parameter #0 [ <required> ?array &$read ] + Parameter #1 [ <required> ?array &$write ] + Parameter #2 [ <required> array &$error ] + Parameter #3 [ <required> int $seconds ] + Parameter #4 [ <optional> int $microseconds = 0 ] + } + } + } + + - Properties [18] { + Property [ public $affected_rows = NULL ] + Property [ public $client_info = NULL ] + Property [ public $client_version = NULL ] + Property [ public $connect_errno = NULL ] + Property [ public $connect_error = NULL ] + Property [ public $errno = NULL ] + Property [ public $error = NULL ] + Property [ public $error_list = NULL ] + Property [ public $field_count = NULL ] + Property [ public $host_info = NULL ] + Property [ public $info = NULL ] + Property [ public $insert_id = NULL ] + Property [ public $server_info = NULL ] + Property [ public $server_version = NULL ] + Property [ public $sqlstate = NULL ] + Property [ public $protocol_version = NULL ] + Property [ public $thread_id = NULL ] + Property [ public $warning_count = NULL ] + } + + - Methods [42] { + Method [ <internal:mysqli, ctor> public method __construct ] { + + - Parameters [6] { + Parameter #0 [ <optional> ?string $hostname = null ] + Parameter #1 [ <optional> ?string $username = null ] + Parameter #2 [ <optional> ?string $password = null ] + Parameter #3 [ <optional> ?string $database = null ] + Parameter #4 [ <optional> ?int $port = null ] + Parameter #5 [ <optional> ?string $socket = null ] + } + } + + Method [ <internal:mysqli> public method autocommit ] { + + - Parameters [1] { + Parameter #0 [ <required> bool $enable ] + } + } + + Method [ <internal:mysqli> public method begin_transaction ] { + + - Parameters [2] { + Parameter #0 [ <optional> int $flags = 0 ] + Parameter #1 [ <optional> ?string $name = null ] + } + } + + Method [ <internal:mysqli> public method change_user ] { + + - Parameters [3] { + Parameter #0 [ <required> string $username ] + Parameter #1 [ <required> string $password ] + Parameter #2 [ <required> ?string $database ] + } + } + + Method [ <internal:mysqli> public method character_set_name ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method close ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method commit ] { + + - Parameters [2] { + Parameter #0 [ <optional> int $flags = -1 ] + Parameter #1 [ <optional> ?string $name = null ] + } + } + + Method [ <internal:mysqli> public method connect ] { + + - Parameters [6] { + Parameter #0 [ <optional> ?string $hostname = null ] + Parameter #1 [ <optional> ?string $username = null ] + Parameter #2 [ <optional> ?string $password = null ] + Parameter #3 [ <optional> ?string $database = null ] + Parameter #4 [ <optional> ?int $port = null ] + Parameter #5 [ <optional> ?string $socket = null ] + } + } + + Method [ <internal:mysqli> public method dump_debug_info ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method debug ] { + + - Parameters [1] { + Parameter #0 [ <required> string $options ] + } + } + + Method [ <internal:mysqli> public method get_charset ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method get_client_info ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method get_connection_stats ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method get_server_info ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method get_warnings ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method init ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method kill ] { + + - Parameters [1] { + Parameter #0 [ <required> int $process_id ] + } + } + + Method [ <internal:mysqli> public method multi_query ] { + + - Parameters [1] { + Parameter #0 [ <required> string $query ] + } + } + + Method [ <internal:mysqli> public method more_results ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method next_result ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method ping ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method prepare ] { + + - Parameters [1] { + Parameter #0 [ <required> string $query ] + } + } + + Method [ <internal:mysqli> public method query ] { + + - Parameters [2] { + Parameter #0 [ <required> string $query ] + Parameter #1 [ <optional> int $result_mode = MYSQLI_STORE_RESULT ] + } + } + + Method [ <internal:mysqli> public method real_connect ] { + + - Parameters [7] { + Parameter #0 [ <optional> ?string $hostname = null ] + Parameter #1 [ <optional> ?string $username = null ] + Parameter #2 [ <optional> ?string $password = null ] + Parameter #3 [ <optional> ?string $database = null ] + Parameter #4 [ <optional> ?int $port = null ] + Parameter #5 [ <optional> ?string $socket = null ] + Parameter #6 [ <optional> int $flags = 0 ] + } + } + + Method [ <internal:mysqli> public method real_escape_string ] { + + - Parameters [1] { + Parameter #0 [ <required> string $string ] + } + } + + Method [ <internal:mysqli> public method reap_async_query ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method escape_string ] { + + - Parameters [1] { + Parameter #0 [ <required> string $string ] + } + } + + Method [ <internal:mysqli> public method real_query ] { + + - Parameters [1] { + Parameter #0 [ <required> string $query ] + } + } + + Method [ <internal:mysqli> public method release_savepoint ] { + + - Parameters [1] { + Parameter #0 [ <required> string $name ] + } + } + + Method [ <internal:mysqli> public method rollback ] { + + - Parameters [2] { + Parameter #0 [ <optional> int $flags = 0 ] + Parameter #1 [ <optional> ?string $name = null ] + } + } + + Method [ <internal:mysqli> public method savepoint ] { + + - Parameters [1] { + Parameter #0 [ <required> string $name ] + } + } + + Method [ <internal:mysqli> public method select_db ] { + + - Parameters [1] { + Parameter #0 [ <required> string $database ] + } + } + + Method [ <internal:mysqli> public method set_charset ] { + + - Parameters [1] { + Parameter #0 [ <required> string $charset ] + } + } + + Method [ <internal:mysqli> public method options ] { + + - Parameters [2] { + Parameter #0 [ <required> int $option ] + Parameter #1 [ <required> $value ] + } + } + + Method [ <internal:mysqli> public method set_opt ] { + + - Parameters [2] { + Parameter #0 [ <required> int $option ] + Parameter #1 [ <required> $value ] + } + } + + Method [ <internal:mysqli> public method ssl_set ] { + + - Parameters [5] { + Parameter #0 [ <required> string $key ] + Parameter #1 [ <required> string $certificate ] + Parameter #2 [ <required> string $ca_certificate ] + Parameter #3 [ <required> string $ca_path ] + Parameter #4 [ <required> string $cipher_algos ] + } + } + + Method [ <internal:mysqli> public method stat ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method stmt_init ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method store_result ] { + + - Parameters [1] { + Parameter #0 [ <optional> int $mode = 0 ] + } + } + + Method [ <internal:mysqli> public method thread_safe ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method use_result ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method refresh ] { + + - Parameters [1] { + Parameter #0 [ <required> int $flags ] + } + } + } + } + + Class [ <internal:mysqli> final class mysqli_warning ] { + + - Constants [0] { + } + + - Static properties [0] { + } + + - Static methods [0] { + } + + - Properties [3] { + Property [ public $message = NULL ] + Property [ public $sqlstate = NULL ] + Property [ public $errno = NULL ] + } + + - Methods [2] { + Method [ <internal:mysqli, ctor> private method __construct ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method next ] { + + - Parameters [0] { + } + - Return [ bool ] + } + } + } + + Class [ <internal:mysqli> <iterateable> class mysqli_result implements IteratorAggregate, Traversable ] { + + - Constants [0] { + } + + - Static properties [0] { + } + + - Static methods [0] { + } + + - Properties [5] { + Property [ public $current_field = NULL ] + Property [ public $field_count = NULL ] + Property [ public $lengths = NULL ] + Property [ public $num_rows = NULL ] + Property [ public $type = NULL ] + } + + - Methods [15] { + Method [ <internal:mysqli, ctor> public method __construct ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <optional> int $result_mode = MYSQLI_STORE_RESULT ] + } + } + + Method [ <internal:mysqli> public method close ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method free ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method data_seek ] { + + - Parameters [1] { + Parameter #0 [ <required> int $offset ] + } + } + + Method [ <internal:mysqli> public method fetch_field ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method fetch_fields ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method fetch_field_direct ] { + + - Parameters [1] { + Parameter #0 [ <required> int $index ] + } + } + + Method [ <internal:mysqli> public method fetch_all ] { + + - Parameters [1] { + Parameter #0 [ <optional> int $mode = MYSQLI_NUM ] + } + } + + Method [ <internal:mysqli> public method fetch_array ] { + + - Parameters [1] { + Parameter #0 [ <optional> int $mode = MYSQLI_BOTH ] + } + } + + Method [ <internal:mysqli> public method fetch_assoc ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method fetch_object ] { + + - Parameters [2] { + Parameter #0 [ <optional> string $class = "stdClass" ] + Parameter #1 [ <optional> array $constructor_args = [] ] + } + } + + Method [ <internal:mysqli> public method fetch_row ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method field_seek ] { + + - Parameters [1] { + Parameter #0 [ <required> int $index ] + } + } + + Method [ <internal:mysqli> public method free_result ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli, prototype IteratorAggregate> public method getIterator ] { + + - Parameters [0] { + } + - Return [ Iterator ] + } + } + } + + Class [ <internal:mysqli> class mysqli_stmt ] { + + - Constants [0] { + } + + - Static properties [0] { + } + + - Static methods [0] { + } + + - Properties [10] { + Property [ public $affected_rows = NULL ] + Property [ public $insert_id = NULL ] + Property [ public $num_rows = NULL ] + Property [ public $param_count = NULL ] + Property [ public $field_count = NULL ] + Property [ public $errno = NULL ] + Property [ public $error = NULL ] + Property [ public $error_list = NULL ] + Property [ public $sqlstate = NULL ] + Property [ public $id = NULL ] + } + + - Methods [20] { + Method [ <internal:mysqli, ctor> public method __construct ] { + + - Parameters [2] { + Parameter #0 [ <required> mysqli $mysql ] + Parameter #1 [ <optional> ?string $query = null ] + } + } + + Method [ <internal:mysqli> public method attr_get ] { + + - Parameters [1] { + Parameter #0 [ <required> int $attribute ] + } + } + + Method [ <internal:mysqli> public method attr_set ] { + + - Parameters [2] { + Parameter #0 [ <required> int $attribute ] + Parameter #1 [ <required> int $value ] + } + } + + Method [ <internal:mysqli> public method bind_param ] { + + - Parameters [2] { + Parameter #0 [ <required> string $types ] + Parameter #1 [ <optional> mixed &...$vars ] + } + } + + Method [ <internal:mysqli> public method bind_result ] { + + - Parameters [1] { + Parameter #0 [ <optional> mixed &...$vars ] + } + } + + Method [ <internal:mysqli> public method close ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method data_seek ] { + + - Parameters [1] { + Parameter #0 [ <required> int $offset ] + } + } + + Method [ <internal:mysqli> public method execute ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method fetch ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method get_warnings ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method result_metadata ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method more_results ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method next_result ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method num_rows ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method send_long_data ] { + + - Parameters [2] { + Parameter #0 [ <required> int $param_num ] + Parameter #1 [ <required> string $data ] + } + } + + Method [ <internal:mysqli> public method free_result ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method reset ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method prepare ] { + + - Parameters [1] { + Parameter #0 [ <required> string $query ] + } + } + + Method [ <internal:mysqli> public method store_result ] { + + - Parameters [0] { + } + } + + Method [ <internal:mysqli> public method get_result ] { + + - Parameters [0] { + } + } + } + } + } +} + diff --git a/mysqlnd_PHPINFO b/mysqlnd_PHPINFO new file mode 100644 index 0000000..06e6c40 --- /dev/null +++ b/mysqlnd_PHPINFO @@ -0,0 +1,17 @@ + +mysqlnd + +mysqlnd => enabled +Version => mysqlnd 8.0.25 +Compression => supported +core SSL => supported +extended SSL => supported +LDAP SASL => not supported +Command buffer size => 4096 +Read buffer size => 32768 +Read timeout => 86400 +Collecting statistics => Yes +Collecting memory statistics => No +Tracing => n/a +Loaded plugins => mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_caching_sha2_password,auth_plugin_sha256_password,auth_plugin_authentication_kerberos_client +API Extensions => mysqli,pdo_mysql diff --git a/mysqlnd_REFLECTION b/mysqlnd_REFLECTION new file mode 100644 index 0000000..b5eaef7 --- /dev/null +++ b/mysqlnd_REFLECTION @@ -0,0 +1,43 @@ +Extension [ <persistent> extension #36 mysqlnd version mysqlnd 8.0.25 ] { + + - Dependencies { + Dependency [ standard (Required) ] + } + + - INI { + Entry [ mysqlnd.collect_statistics <ALL> ] + Current = '1' + } + Entry [ mysqlnd.collect_memory_statistics <SYSTEM> ] + Current = '0' + } + Entry [ mysqlnd.debug <SYSTEM> ] + Current = '' + } + Entry [ mysqlnd.trace_alloc <SYSTEM> ] + Current = '' + } + Entry [ mysqlnd.net_cmd_buffer_size <ALL> ] + Current = '4096' + } + Entry [ mysqlnd.net_read_buffer_size <ALL> ] + Current = '32768' + } + Entry [ mysqlnd.net_read_timeout <ALL> ] + Current = '86400' + } + Entry [ mysqlnd.log_mask <ALL> ] + Current = '0' + } + Entry [ mysqlnd.mempool_default_size <ALL> ] + Current = '16000' + } + Entry [ mysqlnd.sha256_server_public_key <PERDIR> ] + Current = '' + } + Entry [ mysqlnd.fetch_data_copy <ALL> ] + Current = '0' + } + } +} + diff --git a/mysqlnd_ngen-fix.patch b/mysqlnd_ngen-fix.patch new file mode 100644 index 0000000..28be2f3 --- /dev/null +++ b/mysqlnd_ngen-fix.patch @@ -0,0 +1,65 @@ +diff -up ./mysqli/config.m4.fix ./mysqli/config.m4 +--- ./mysqli/config.m4.fix 2021-05-10 12:07:40.455022526 +0200 ++++ ./mysqli/config.m4 2021-05-10 12:22:06.477760111 +0200 +@@ -95,13 +95,9 @@ if test "$PHP_MYSQLI" != "no"; then + mysqli_exception.c mysqli_result_iterator.c" + PHP_NEW_EXTENSION(mysqli, $mysqli_sources, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) + PHP_SUBST(MYSQLI_SHARED_LIBADD) +- PHP_INSTALL_HEADERS([ext/mysqli/php_mysqli_structs.h]) + + if test "$PHP_MYSQLI" = "yes" || test "$PHP_MYSQLI" = "mysqlnd"; then + PHP_ADD_EXTENSION_DEP(mysqli, mysqlnd) + AC_DEFINE([MYSQLI_USE_MYSQLND], 1, [Whether mysqlnd is enabled]) +- PHP_INSTALL_HEADERS([ext/mysqli/mysqli_mysqlnd.h]) +- else +- PHP_INSTALL_HEADERS([ext/mysqli/mysqli_libmysql.h]) + fi + fi +diff -up ./mysqlnd/config.m4.fix ./mysqlnd/config.m4 +--- ./mysqlnd/config.m4.fix 2021-05-10 11:49:47.301506047 +0200 ++++ ./mysqlnd/config.m4 2021-05-10 12:07:57.418958506 +0200 +@@ -53,7 +53,7 @@ if test "$PHP_MYSQLND" != "no" || test " + fi + + if test "$PHP_MYSQLND_LDAP_KRB_SUPPORT" != "no"; then +- PKG_CHECK_MODULES([KRB5], [libkrb5]) ++ PKG_CHECK_MODULES([KRB5], [krb5]) + PHP_EVAL_LIBLINE($KRB5_LIBS, MYSQLND_SHARED_LIBADD) + PHP_EVAL_INCLINE($KRB5_CFLAGS) + AC_DEFINE([MYSQLND_HAVE_KRB5], 1, [LDAP Kerberos protocol support]) +@@ -67,11 +67,11 @@ if test "$PHP_MYSQLND" != "no" || test " + if test "$PHP_OPENSSL" != "no" || test "$PHP_OPENSSL_DIR" != "no"; then + PHP_SETUP_OPENSSL(MYSQLND_SHARED_LIBADD, [AC_DEFINE(MYSQLND_HAVE_SSL,1,[Enable mysqlnd code that uses OpenSSL directly])]) + fi ++ PHP_SUBST(MYSQLND_SHARED_LIBADD) + + mysqlnd_sources="$mysqlnd_base_sources $mysqlnd_ps_sources" + PHP_NEW_EXTENSION(mysqlnd, $mysqlnd_sources, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) + PHP_ADD_BUILD_DIR([ext/mysqlnd], 1) +- PHP_INSTALL_HEADERS([ext/mysqlnd/]) + fi + + if test "$PHP_MYSQLND" != "no" || test "$PHP_MYSQLND_ENABLED" = "yes" || test "$PHP_MYSQLI" != "no"; then +diff -up ./pdo_mysql/config.m4.fix ./pdo_mysql/config.m4 +--- ./pdo_mysql/config.m4.fix 2021-05-10 11:50:56.549183180 +0200 ++++ ./pdo_mysql/config.m4 2021-05-10 11:51:21.302067764 +0200 +@@ -14,19 +14,6 @@ if test -z "$PHP_ZLIB_DIR"; then + fi + + if test "$PHP_PDO_MYSQL" != "no"; then +- dnl This depends on ext/mysqli/config.m4 providing the PHP_MYSQL_SOCKET_SEARCH +- dnl macro and --with-mysql-sock configure option. +- AC_MSG_CHECKING([for MySQL UNIX socket location]) +- if test "$PHP_MYSQL_SOCK" != "no" && test "$PHP_MYSQL_SOCK" != "yes"; then +- MYSQL_SOCK=$PHP_MYSQL_SOCK +- AC_DEFINE_UNQUOTED(PHP_MYSQL_UNIX_SOCK_ADDR, "$MYSQL_SOCK", [ ]) +- AC_MSG_RESULT([$MYSQL_SOCK]) +- elif test "$PHP_MYSQL_SOCK" = "yes"; then +- PHP_MYSQL_SOCKET_SEARCH +- else +- AC_MSG_RESULT([no]) +- fi +- + if test "$PHP_PDO" = "no" && test "$ext_shared" = "no"; then + AC_MSG_ERROR([PDO is not enabled! Add --enable-pdo to your configure line.]) + fi diff --git a/pdo_mysql_PHPINFO b/pdo_mysql_PHPINFO new file mode 100644 index 0000000..106cfcc --- /dev/null +++ b/pdo_mysql_PHPINFO @@ -0,0 +1,8 @@ + +pdo_mysql + +PDO Driver for MySQL => enabled +Client API version => mysqlnd 8.0.25 + +Directive => Local Value => Master Value +pdo_mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock diff --git a/pdo_mysql_REFLECTION b/pdo_mysql_REFLECTION new file mode 100644 index 0000000..98cc28d --- /dev/null +++ b/pdo_mysql_REFLECTION @@ -0,0 +1,14 @@ +Extension [ <persistent> extension #63 pdo_mysql version 8.0.25 ] { + + - Dependencies { + Dependency [ pdo (Required) ] + Dependency [ mysqlnd (Required) ] + } + + - INI { + Entry [ pdo_mysql.default_socket <SYSTEM> ] + Current = '/var/lib/mysql/mysql.sock' + } + } +} + diff --git a/php-pecl-mysqlnd-ngen.spec b/php-pecl-mysqlnd-ngen.spec new file mode 100644 index 0000000..f57d251 --- /dev/null +++ b/php-pecl-mysqlnd-ngen.spec @@ -0,0 +1,322 @@ +# remirepo spec file for php-pecl-mysqlnd-ngen +# +# Copyright (c) 2021 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# + +# we don't want -z defs linker flag +%undefine _strict_symbol_defs_build + +%if 0%{?scl:1} +%global sub_prefix %{scl_prefix} +%scl_package php-pecl-mysqlnd-ngen +%endif + +%global mysql_sock %(mysql_config --socket 2>/dev/null || echo /var/lib/mysql/mysql.sock) + +%global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} +%global pecl_name mysqlnd_ngen + +%global upstream_version 8.0.25 +%global upstream_verid 80025 +#global upstream_prever RC + +Summary: Extended version of mysqlnd,mysqli and pdo +Name: %{?sub_prefix}php-pecl-mysqlnd-ngen +Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}} +Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} + +License: PHP +URL: https://pecl.php.net/package/%{pecl_name} +Source0: https://pecl.php.net/get/%{pecl_name}-%{upstream_version}%{?upstream_prever}.tgz + +Patch0: %{pecl_name}-fix.patch + +BuildRequires: make +BuildRequires: %{?dtsprefix}gcc +BuildRequires: %{?scl_prefix}php-devel >= 8 +BuildRequires: %{?scl_prefix}php-pdo +BuildRequires: %{?scl_prefix}php-pear +BuildRequires: pkgconfig(libsasl2) +BuildRequires: pkgconfig(zlib) +BuildRequires: pkgconfig(krb5) + +Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} +Requires: %{?scl_prefix}php(api) = %{php_core_api} +Requires: %{?scl_prefix}php-mysqlnd%{?_isa} +%{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}} + +Provides: %{?scl_prefix}php-pecl(%{pecl_name}) = %{version} +Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version} +Conflicts: %{?scl_prefix}php-mysqlnd < %{version} +Provides: %{?scl_prefix}php-mysqlnd = %{version} +Provides: %{?scl_prefix}php-mysqlnd%{?_isa} = %{version} +Provides: %{?scl_prefix}php-mysqli = %{version} +Provides: %{?scl_prefix}php-mysqli%{?_isa} = %{version} +Provides: %{?scl_prefix}php-pdo_mysql = %{version} +Provides: %{?scl_prefix}php-pdo_mysql%{?_isa} = %{version} + +# Notice pecl_name != name +Provides: %{?scl_prefix}php-pecl-%{pecl_name} = %{version}-%{release} +Provides: %{?scl_prefix}php-pecl-%{pecl_name}%{?_isa} = %{version}-%{release} + +%if "%{?packager}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} +# Other third party repo stuff +%if "%{php_version}" > "8.0" +Obsoletes: php80-pecl-%{pecl_name} <= %{version} +%endif +%endif + + +%description +This package is an enhanced version of mysqlnd, it includes PDO and Mysqli +as well. The purpose of releasing this version of mysqlnd is to make available +new features that can take longer to be rolled out to the official php repo. + +Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}. + + +%prep +%setup -qc +mv %{pecl_name}-%{upstream_version}%{?upstream_prever} NTS + +# Don't install/register tests +sed -e 's/role="test"/role="src"/' \ + %{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \ + -e '/providesextension>my/d' \ + -i package.xml + +pushd NTS +# Fix the build +%patch0 -p1 -b .fix +# Use proper headers +sed -e 's:ext/mysqlnd/:../mysqlnd/:' -i */*.c */*.h +# Use proper version +sed -e 's:PHP_VERSION_ID:%{upstream_verid}:' \ + -e 's:PHP_VERSION:"%{upstream_version}":' -i */*.h +popd + +%if %{with_zts} +# duplicate for ZTS build +cp -pr NTS ZTS +%endif + +# Create configuration files +cat > mysqlnd.ini << 'EOF' +; Enable mysqlnd extension modules +extension=mysqlnd.so + +;mysqlnd.collect_statistics = 1 +;mysqlnd.collect_memory_statistics = 0 +;mysqlnd.debug = +;mysqlnd.trace_alloc = +;mysqlnd.net_cmd_buffer_size = 4096 +;mysqlnd.net_read_buffer_size = 32768 +;mysqlnd.net_read_timeout = 86400 +;mysqlnd.log_mask = 0 +;mysqlnd.mempool_default_size = 16000 +;mysqlnd.sha256_server_public_key = +;mysqlnd.fetch_data_copy = 0 +EOF + +cat > pdo_mysql.ini << 'EOF' +; Enable pdo_mysql extension modules +extension=pdo_mysql.so + +; configuration +;pdo_mysql.default_socket = '/var/lib/mysql/mysql.sock' +EOF + +cat > mysqli.ini << 'EOF' +; Enable mysqli extension modules +extension=mysqli.so + +;mysqli.max_links = -1 +;mysqli.max_persistent =1 +;mysqli.allow_persistent -1 +;mysqli.rollback_on_cached_plink = 0 +;mysqli.default_host = +;mysqli.default_user = +;mysqli.default_pw = +;mysqli.default_port = 3306 +;mysqli.default_socket = '/var/lib/mysql/mysql.sock' +;mysqli.reconnect = 0 +;mysqli.allow_local_infile = 0 +EOF + + +%build +%{?dtsenable} + +pushd NTS +pushd mysqlnd +%{_bindir}/phpize +%configure \ + --enable-mysqlnd \ + --enable-mysqlnd-compression-support \ + --enable-mysqlnd-sasl-support \ + --enable-mysqlnd-ldap-krb-support \ + --with-libdir=%{_lib} \ + --with-php-config=%{_bindir}/php-config + +make %{?_smp_mflags} +popd + +pushd mysqli +%{_bindir}/phpize +%configure \ + --with-mysqli \ + --with-mysql-sock=%{mysql_sock} \ + --with-libdir=%{_lib} \ + --with-php-config=%{_bindir}/php-config +make %{?_smp_mflags} +popd + +pushd pdo_mysql +%{_bindir}/phpize +%configure \ + --with-pdo-mysql \ + --with-libdir=%{_lib} \ + --with-php-config=%{_bindir}/php-config +make %{?_smp_mflags} +popd + +popd + +%if %{with_zts} +pushd ZTS +pushd mysqlnd +%{_bindir}/phpize +%configure \ + --enable-mysqlnd \ + --enable-mysqlnd-compression-support \ + --enable-mysqlnd-sasl-support \ + --enable-mysqlnd-ldap-krb-support \ + --with-libdir=%{_lib} \ + --with-php-config=%{_bindir}/zts-php-config +make %{?_smp_mflags} +popd + +pushd mysqli +%{_bindir}/phpize +%configure \ + --with-mysqli \ + --with-mysql-sock=%{mysql_sock} \ + --with-libdir=%{_lib} \ + --with-php-config=%{_bindir}/zts-php-config +make %{?_smp_mflags} +popd + +pushd pdo_mysql +%{_bindir}/phpize +%configure \ + --with-pdo-mysql \ + --with-libdir=%{_lib} \ + --with-php-config=%{_bindir}/zts-php-config +make %{?_smp_mflags} +popd +popd +%endif + +%install +%{?dtsenable} + +# Install the NTS stuff +make -C NTS/mysqlnd install INSTALL_ROOT=%{buildroot} +make -C NTS/mysqli install INSTALL_ROOT=%{buildroot} +make -C NTS/pdo_mysql install INSTALL_ROOT=%{buildroot} +install -D -m 644 mysqlnd.ini %{buildroot}%{php_inidir}/20-mysqlnd.ini +install -D -m 644 mysqli.ini %{buildroot}%{php_inidir}/30-mysqli.ini +install -D -m 644 pdo_mysql.ini %{buildroot}%{php_inidir}/30-pdo_mysql.ini + +# Install XML package description +install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml + +# Install the ZTS stuff +%if %{with_zts} +make -C ZTS/mysqlnd install INSTALL_ROOT=%{buildroot} +make -C ZTS/mysqli install INSTALL_ROOT=%{buildroot} +make -C ZTS/pdo_mysql install INSTALL_ROOT=%{buildroot} +install -D -m 644 mysqlnd.ini %{buildroot}%{php_ztsinidir}/20-mysqlnd.ini +install -D -m 644 mysqli.ini %{buildroot}%{php_ztsinidir}/30-mysqli.ini +install -D -m 644 pdo_mysql.ini %{buildroot}%{php_ztsinidir}/30-pdo_mysql.ini +%endif + +# Documentation +for i in $(grep 'role="doc"' package.xml | sed -e 's/^.*name="//;s/".*$//') +do [ -f NTS/$i ] && install -Dpm 644 NTS/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i +done + + +%check +: Minimal load test for NTS extensions +%{_bindir}/php --no-php-ini \ + --define extension=%{buildroot}%{php_extdir}/mysqlnd.so \ + --modules | grep '^mysqlnd$' +%{_bindir}/php --no-php-ini \ + --define extension=%{buildroot}%{php_extdir}/mysqlnd.so \ + --define extension=%{buildroot}%{php_extdir}/mysqli.so \ + --modules | grep '^mysqli$' +%{_bindir}/php --no-php-ini \ + --define extension=pdo.so \ + --define extension=%{buildroot}%{php_extdir}/mysqlnd.so \ + --define extension=%{buildroot}%{php_extdir}/pdo_mysql.so \ + --modules | grep '^pdo_mysql$' + +%if %{with_zts} +: Minimal load test for ZTS extension +%{__ztsphp} --no-php-ini \ + --define extension=%{buildroot}%{php_ztsextdir}/mysqlnd.so \ + --modules | grep '^mysqlnd$' +%{__ztsphp} --no-php-ini \ + --define extension=%{buildroot}%{php_ztsextdir}/mysqlnd.so \ + --define extension=%{buildroot}%{php_ztsextdir}/mysqli.so \ + --modules | grep '^mysqli$' +%{__ztsphp} --no-php-ini \ + --define extension=pdo.so \ + --define extension=%{buildroot}%{php_ztsextdir}/mysqlnd.so \ + --define extension=%{buildroot}%{php_ztsextdir}/pdo_mysql.so \ + --modules | grep '^pdo_mysql$' +%endif + + +%if 0%{?fedora} < 24 && 0%{?rhel} < 8 +# when pear installed alone, after us +%triggerin -- %{?scl_prefix}php-pear +if [ -x %{__pecl} ] ; then + %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : +fi + +# posttrans as pear can be installed after us +%posttrans +if [ -x %{__pecl} ] ; then + %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : +fi + +%postun +if [ $1 -eq 0 -a -x %{__pecl} ] ; then + %{pecl_uninstall} %{pecl_name} >/dev/null || : +fi +%endif + + +%files +#%%{?_licensedir:%%license NTS/LICENSE.txt} +%doc %{pecl_docdir}/%{pecl_name} +%{pecl_xmldir}/%{name}.xml + +%config(noreplace) %{php_inidir}/*.ini +%{php_extdir}/*.so + +%if %{with_zts} +%config(noreplace) %{php_ztsinidir}/*.ini +%{php_ztsextdir}/*.so +%endif + + +%changelog +* Mon May 10 2021 Remi Collet <remi@remirepo.net> - 8.0.25-1 +- initial package, version 8.0.25 |