summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2021-05-10 14:34:10 +0200
committerRemi Collet <remi@remirepo.net>2021-05-10 14:34:10 +0200
commit07a59197db5368f41d264f32c514c87c379d814f (patch)
tree386f7924153a71b93ec095ad5a462d8893f87648
new packageHEADmaster
-rw-r--r--.gitignore9
-rw-r--r--Makefile12
-rw-r--r--mysqli_PHPINFO21
-rw-r--r--mysqli_REFLECTION1729
-rw-r--r--mysqlnd_PHPINFO17
-rw-r--r--mysqlnd_REFLECTION43
-rw-r--r--mysqlnd_ngen-fix.patch65
-rw-r--r--pdo_mysql_PHPINFO8
-rw-r--r--pdo_mysql_REFLECTION14
-rw-r--r--php-pecl-mysqlnd-ngen.spec322
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