1 diff -urNp -x '*.orig' php-5.2.17.org/ext/mysqli/mysqli.c php-5.2.17/ext/mysqli/mysqli.c
2 --- php-5.2.17.org/ext/mysqli/mysqli.c 2010-08-13 12:43:15.000000000 +0200
3 +++ php-5.2.17/ext/mysqli/mysqli.c 2021-10-23 19:07:32.689791758 +0200
4 @@ -451,6 +451,7 @@ PHP_INI_BEGIN()
5 STD_PHP_INI_ENTRY("mysqli.default_pw", NULL, PHP_INI_ALL, OnUpdateString, default_pw, zend_mysqli_globals, mysqli_globals)
6 STD_PHP_INI_ENTRY("mysqli.default_port", "3306", PHP_INI_ALL, OnUpdateLong, default_port, zend_mysqli_globals, mysqli_globals)
7 STD_PHP_INI_ENTRY("mysqli.default_socket", NULL, PHP_INI_ALL, OnUpdateStringUnempty, default_socket, zend_mysqli_globals, mysqli_globals)
8 + STD_PHP_INI_ENTRY("mysqli.connect_charset", NULL, PHP_INI_ALL, OnUpdateString, connect_charset, zend_mysqli_globals, mysqli_globals)
9 STD_PHP_INI_BOOLEAN("mysqli.reconnect", "0", PHP_INI_SYSTEM, OnUpdateLong, reconnect, zend_mysqli_globals, mysqli_globals)
12 @@ -467,6 +468,7 @@ static PHP_GINIT_FUNCTION(mysqli)
13 mysqli_globals->default_user = NULL;
14 mysqli_globals->default_pw = NULL;
15 mysqli_globals->default_socket = NULL;
16 + mysqli_globals->connect_charset = NULL;
17 mysqli_globals->reconnect = 0;
18 mysqli_globals->report_mode = 0;
19 mysqli_globals->report_ht = 0;
20 diff -urNp -x '*.orig' php-5.2.17.org/ext/mysqli/mysqli_api.c php-5.2.17/ext/mysqli/mysqli_api.c
21 --- php-5.2.17.org/ext/mysqli/mysqli_api.c 2021-10-23 19:07:30.269791758 +0200
22 +++ php-5.2.17/ext/mysqli/mysqli_api.c 2021-10-23 19:07:32.689791758 +0200
23 @@ -1428,7 +1428,7 @@ PHP_FUNCTION(mysqli_prepare)
24 PHP_FUNCTION(mysqli_real_connect)
27 - char *hostname = NULL, *username=NULL, *passwd=NULL, *dbname=NULL, *socket=NULL;
28 + char *hostname = NULL, *username=NULL, *passwd=NULL, *dbname=NULL, *socket=NULL, *connect_charset=NULL;
29 unsigned int hostname_len = 0, username_len = 0, passwd_len = 0, dbname_len = 0, socket_len = 0;
30 unsigned long port=0, flags=0;
32 @@ -1478,6 +1478,12 @@ PHP_FUNCTION(mysqli_real_connect)
33 socket = MyG(default_socket);
36 + connect_charset = MyG(connect_charset);
38 + if (connect_charset != NULL) {
39 + mysql_options(mysql->mysql, MYSQL_SET_CHARSET_NAME, connect_charset);
42 if (mysql_real_connect(mysql->mysql,hostname,username,passwd,dbname,port,socket,flags) == NULL) {
43 php_mysqli_set_error(mysql_errno(mysql->mysql), (char *) mysql_error(mysql->mysql) TSRMLS_CC);
44 php_mysqli_throw_sql_exception( mysql->mysql->net.sqlstate, mysql->mysql->net.last_errno TSRMLS_CC,
45 diff -urNp -x '*.orig' php-5.2.17.org/ext/mysqli/mysqli_nonapi.c php-5.2.17/ext/mysqli/mysqli_nonapi.c
46 --- php-5.2.17.org/ext/mysqli/mysqli_nonapi.c 2010-01-25 14:23:32.000000000 +0100
47 +++ php-5.2.17/ext/mysqli/mysqli_nonapi.c 2021-10-23 19:07:32.689791758 +0200
48 @@ -36,7 +36,7 @@ PHP_FUNCTION(mysqli_connect)
49 MY_MYSQL *mysql = NULL;
50 MYSQLI_RESOURCE *mysqli_resource = NULL;
51 zval *object = getThis();
52 - char *hostname = NULL, *username=NULL, *passwd=NULL, *dbname=NULL, *socket=NULL;
53 + char *hostname = NULL, *username=NULL, *passwd=NULL, *dbname=NULL, *socket=NULL, *connect_charset=NULL;
54 unsigned int hostname_len = 0, username_len = 0, passwd_len = 0, dbname_len = 0, socket_len = 0;
57 @@ -116,6 +116,12 @@ PHP_FUNCTION(mysqli_connect)
58 socket = MyG(default_socket);
61 + connect_charset = MyG(connect_charset);
63 + if (connect_charset != NULL) {
64 + mysql_options(mysql->mysql, MYSQL_SET_CHARSET_NAME, connect_charset);
67 if (mysql_real_connect(mysql->mysql,hostname,username,passwd,dbname,port,socket,CLIENT_MULTI_RESULTS) == NULL) {
68 /* Save error messages */
70 diff -urNp -x '*.orig' php-5.2.17.org/ext/mysqli/php_mysqli.h php-5.2.17/ext/mysqli/php_mysqli.h
71 --- php-5.2.17.org/ext/mysqli/php_mysqli.h 2010-01-25 14:23:32.000000000 +0100
72 +++ php-5.2.17/ext/mysqli/php_mysqli.h 2021-10-23 19:07:32.689791758 +0200
73 @@ -442,6 +442,7 @@ ZEND_BEGIN_MODULE_GLOBALS(mysqli)
77 + char *connect_charset;