diff --git a/ext/mysqli/config.m4 b/ext/mysqli/config.m4 index c38f013583d..744c9bf8467 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_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 e056ceba2da..7d47ef07567 100644 --- a/ext/mysqli/mysqli.c +++ b/ext/mysqli/mysqli.c @@ -659,7 +659,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 3af7654733b..34b83bb12a8 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -577,7 +577,7 @@ PHP_FUNCTION(mysqli_change_user) size_t user_len, password_len, dbname_len; zend_ulong rc; #ifndef MYSQLI_USE_MYSQLND - 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) { @@ -586,7 +586,7 @@ PHP_FUNCTION(mysqli_change_user) MYSQLI_FETCH_RESOURCE_CONN(mysql, mysql_link, MYSQLI_STATUS_VALID); #ifndef MYSQLI_USE_MYSQLND - old_charset = mysql->mysql->charset; + mysql_get_character_set_info(mysql->mysql, &old_charset); #endif #ifdef MYSQLI_USE_MYSQLND @@ -606,7 +606,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 @@ -1655,10 +1655,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 394afc7ccc9..47079e0a3e9 100644 --- a/ext/mysqli/mysqli_nonapi.c +++ b/ext/mysqli/mysqli_nonapi.c @@ -326,7 +326,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)); #ifndef 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 cc4556c107b..6becb9845f6 100644 --- a/ext/mysqli/php_mysqli_structs.h +++ b/ext/mysqli/php_mysqli_structs.h @@ -39,22 +39,12 @@ #include "mysqli_mysqlnd.h" #else -#include - -/* - 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 #include +#if MYSQL_VERSION_ID >= 80000 && MYSQL_VERSION_ID < 100000 +typedef _Bool my_bool; +#endif #include -#include -#include #include -#include -#include #include "mysqli_libmysql.h" #endif /* MYSQLI_USE_MYSQLND */ diff --git a/ext/pdo_mysql/config.m4 b/ext/pdo_mysql/config.m4 index 622c1e55b8e..d8b94877235 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_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 4abb25bddce..3957a6c824f 100644 --- a/ext/pdo_mysql/php_pdo_mysql_int.h +++ b/ext/pdo_mysql/php_pdo_mysql_int.h @@ -25,6 +25,9 @@ # define PDO_MYSQL_PARAM_BIND MYSQLND_PARAM_BIND #else # include +#if MYSQL_VERSION_ID >= 80000 && MYSQL_VERSION_ID < 100000 +typedef _Bool my_bool; +#endif # define PDO_MYSQL_PARAM_BIND MYSQL_BIND #endif