diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-09-17 11:32:01 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-09-17 11:32:01 +0200 |
commit | d591e1c4f5114cd5ebf3a68ea07741b0bd598e7f (patch) | |
tree | 94857e5c1d6e6b8a531d673915ffd207a3e3c1f4 | |
parent | f0d2efbadcab95596679e2f78e204299c96ad9b4 (diff) | |
parent | 1aab7db6c870441046007c792c7fc5ecdff2ea51 (diff) | |
download | php-git-d591e1c4f5114cd5ebf3a68ea07741b0bd598e7f.tar.gz |
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
pdo_mysql/mysqli (native) libmysqlclient_r no-longer used
mysql: native mysql-8.0 uses _Bool
mysqli: use native api
-rw-r--r-- | ext/mysqli/config.m4 | 8 | ||||
-rw-r--r-- | ext/mysqli/mysqli.c | 2 | ||||
-rw-r--r-- | ext/mysqli/mysqli_api.c | 8 | ||||
-rw-r--r-- | ext/mysqli/mysqli_nonapi.c | 3 | ||||
-rw-r--r-- | ext/mysqli/php_mysqli_structs.h | 16 | ||||
-rw-r--r-- | ext/pdo_mysql/config.m4 | 9 | ||||
-rw-r--r-- | ext/pdo_mysql/php_pdo_mysql_int.h | 3 |
7 files changed, 17 insertions, 32 deletions
diff --git a/ext/mysqli/config.m4 b/ext/mysqli/config.m4 index c78eb2bedc..e6f0760fda 100644 --- a/ext/mysqli/config.m4 +++ b/ext/mysqli/config.m4 @@ -47,14 +47,8 @@ if test "$PHP_MYSQLI" = "yes" || test "$PHP_MYSQLI" = "mysqlnd"; then elif test "$PHP_MYSQLI" != "no"; then MYSQL_CONFIG=$PHP_MYSQLI - MYSQL_LIB_NAME='mysqlclient' - if test "$enable_maintainer_zts" = "yes"; then - MYSQL_LIB_CFG='--libs_r' - MYSQL_LIB_NAME='mysqlclient_r' - else - MYSQL_LIB_CFG='--libs' - fi + MYSQL_LIB_CFG='--libs' if test -x "$MYSQL_CONFIG" && $MYSQL_CONFIG $MYSQL_LIB_CFG > /dev/null 2>&1; then MYSQLI_INCLINE=`$MYSQL_CONFIG --cflags | $SED -e "s/'//g"` diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c index dc2e0e7e33..dcc5a16d5e 100644 --- a/ext/mysqli/mysqli.c +++ b/ext/mysqli/mysqli.c @@ -699,7 +699,7 @@ PHP_MINIT_FUNCTION(mysqli) #ifdef MYSQLND_STRING_TO_INT_CONVERSION REGISTER_LONG_CONSTANT("MYSQLI_OPT_INT_AND_FLOAT_NATIVE", MYSQLND_OPT_INT_AND_FLOAT_NATIVE, CONST_CS | CONST_PERSISTENT); #endif -#if MYSQL_VERSION_ID > 50110 || defined(MYSQLI_USE_MYSQLND) +#if (MYSQL_VERSION_ID > 50110 && MYSQL_VERSION_ID < 80000) || (MYSQL_VERSION_ID >= 100000) || defined(MYSQLI_USE_MYSQLND) REGISTER_LONG_CONSTANT("MYSQLI_OPT_SSL_VERIFY_SERVER_CERT", MYSQL_OPT_SSL_VERIFY_SERVER_CERT, CONST_CS | CONST_PERSISTENT); #endif diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index 438c6cce55..06eb3c3d32 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -614,7 +614,7 @@ PHP_FUNCTION(mysqli_change_user) size_t user_len, password_len, dbname_len; zend_ulong rc; #if !defined(MYSQLI_USE_MYSQLND) && defined(HAVE_MYSQLI_SET_CHARSET) - const CHARSET_INFO * old_charset; + MY_CHARSET_INFO old_charset; #endif if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Osss!", &mysql_link, mysqli_link_class_entry, &user, &user_len, &password, &password_len, &dbname, &dbname_len) == FAILURE) { @@ -623,7 +623,7 @@ PHP_FUNCTION(mysqli_change_user) MYSQLI_FETCH_RESOURCE_CONN(mysql, mysql_link, MYSQLI_STATUS_VALID); #if !defined(MYSQLI_USE_MYSQLND) && defined(HAVE_MYSQLI_SET_CHARSET) - old_charset = mysql->mysql->charset; + mysql_get_character_set_info(mysql->mysql, &old_charset); #endif #if defined(MYSQLI_USE_MYSQLND) @@ -643,7 +643,7 @@ PHP_FUNCTION(mysqli_change_user) 5.0 doesn't support it. Support added in 5.1.23 by fixing the following bug : Bug #30472 libmysql doesn't reset charset, insert_id after succ. mysql_change_user() call */ - rc = mysql_set_character_set(mysql->mysql, old_charset->csname); + rc = mysql_set_character_set(mysql->mysql, old_charset.csname); } #endif @@ -1701,10 +1701,12 @@ static int mysqli_options_get_option_zval_type(int option) #endif /* MySQL 4.1.0 */ case MYSQL_OPT_READ_TIMEOUT: case MYSQL_OPT_WRITE_TIMEOUT: +#ifdef MYSQL_OPT_GUESS_CONNECTION /* removed in MySQL-8.0 */ case MYSQL_OPT_GUESS_CONNECTION: case MYSQL_OPT_USE_EMBEDDED_CONNECTION: case MYSQL_OPT_USE_REMOTE_CONNECTION: case MYSQL_SECURE_AUTH: +#endif #ifdef MYSQL_OPT_RECONNECT case MYSQL_OPT_RECONNECT: #endif /* MySQL 5.0.13 */ diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c index e8b1e34875..fdacd74d2a 100644 --- a/ext/mysqli/mysqli_nonapi.c +++ b/ext/mysqli/mysqli_nonapi.c @@ -328,7 +328,8 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne php_mysqli_set_error(mysql_errno(mysql->mysql), (char *) mysql_error(mysql->mysql)); #if !defined(MYSQLI_USE_MYSQLND) - mysql->mysql->reconnect = MyG(reconnect); + char reconnect = MyG(reconnect); + mysql_options(mysql->mysql, MYSQL_OPT_RECONNECT, (char *)&reconnect); #endif unsigned int allow_local_infile = MyG(allow_local_infile); mysql_options(mysql->mysql, MYSQL_OPT_LOCAL_INFILE, (char *)&allow_local_infile); diff --git a/ext/mysqli/php_mysqli_structs.h b/ext/mysqli/php_mysqli_structs.h index 96fbacb82e..8afef8736a 100644 --- a/ext/mysqli/php_mysqli_structs.h +++ b/ext/mysqli/php_mysqli_structs.h @@ -54,8 +54,6 @@ #define WE_HAD_MBSTATE_T #endif -#include <my_global.h> - #if !defined(HAVE_MBRLEN) && defined(WE_HAD_MBRLEN) #define HAVE_MBRLEN 1 #endif @@ -64,20 +62,12 @@ #define HAVE_MBSTATE_T 1 #endif -/* - We need more than mysql.h because we need CHARSET_INFO in one place. - This order has been borrowed from the ODBC driver. Nothing can be removed - from the list of headers :( -*/ - -#include <my_sys.h> #include <mysql.h> +#if MYSQL_VERSION_ID >= 80000 && MYSQL_VERSION_ID < 100000 +typedef _Bool my_bool; +#endif #include <errmsg.h> -#include <my_list.h> -#include <m_string.h> #include <mysqld_error.h> -#include <my_list.h> -#include <m_ctype.h> #include "mysqli_libmysql.h" #endif /* MYSQLI_USE_MYSQLND */ diff --git a/ext/pdo_mysql/config.m4 b/ext/pdo_mysql/config.m4 index 6f0302feab..d8b9487723 100644 --- a/ext/pdo_mysql/config.m4 +++ b/ext/pdo_mysql/config.m4 @@ -58,13 +58,8 @@ if test "$PHP_PDO_MYSQL" != "no"; then if test "x$SED" = "x"; then AC_PATH_PROG(SED, sed) fi - if test "$enable_maintainer_zts" = "yes"; then - PDO_MYSQL_LIBNAME=mysqlclient_r - PDO_MYSQL_LIBS=`$PDO_MYSQL_CONFIG --libs_r | $SED -e "s/'//g"` - else - PDO_MYSQL_LIBNAME=mysqlclient - PDO_MYSQL_LIBS=`$PDO_MYSQL_CONFIG --libs | $SED -e "s/'//g"` - fi + PDO_MYSQL_LIBNAME=mysqlclient + PDO_MYSQL_LIBS=`$PDO_MYSQL_CONFIG --libs | $SED -e "s/'//g"` PDO_MYSQL_INCLUDE=`$PDO_MYSQL_CONFIG --cflags | $SED -e "s/'//g"` elif test -n "$PDO_MYSQL_DIR"; then AC_MSG_RESULT([not found]) diff --git a/ext/pdo_mysql/php_pdo_mysql_int.h b/ext/pdo_mysql/php_pdo_mysql_int.h index edded8dea9..a5b8653918 100644 --- a/ext/pdo_mysql/php_pdo_mysql_int.h +++ b/ext/pdo_mysql/php_pdo_mysql_int.h @@ -27,6 +27,9 @@ # define PDO_MYSQL_PARAM_BIND MYSQLND_PARAM_BIND #else # include <mysql.h> +#if MYSQL_VERSION_ID >= 80000 && MYSQL_VERSION_ID < 100000 +typedef _Bool my_bool; +#endif # define PDO_MYSQL_PARAM_BIND MYSQL_BIND #endif |