-diff -aur php-5.2.5_p20080206.orig/ext/mysql/php_mysql.c php-5.2.5_p20080206/ext/mysql/php_mysql.c
--- php-5.2.5_p20080206.orig/ext/mysql/php_mysql.c 2008-02-06 14:22:57.652600900 +0100
+++ php-5.2.5_p20080206/ext/mysql/php_mysql.c 2008-02-06 14:24:40.216655403 +0100
@@ -360,6 +360,7 @@
socket = MySG(default_socket);
-@@ -640,6 +644,9 @@
- mysql_options(&mysql->conn, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout);
+--- php-5.3.1/ext/mysql/php_mysql.c~ 2010-02-20 00:51:52.000000000 +0200
++++ php-5.3.1/ext/mysql/php_mysql.c 2010-02-20 00:55:43.475653264 +0200
+@@ -777,6 +777,10 @@
+ if (connect_timeout != -1) {
+ mysql_options(mysql->conn, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout);
}
-
++
+ if (connect_charset != NULL)
-+ mysql_options(&mysql->conn, MYSQL_SET_CHARSET_NAME, connect_charset);
++ mysql_options(mysql->conn, MYSQL_SET_CHARSET_NAME, connect_charset);
+
- if (mysql_real_connect(&mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL) {
+ #ifndef MYSQL_USE_MYSQLND
+ if (mysql_real_connect(mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL)
#else
- if (mysql_connect(&mysql->conn, host, user, passwd)==NULL) {
-@@ -684,6 +691,9 @@
- signal(SIGPIPE, handler);
- #endif /* end mysql_ping */
- #if MYSQL_VERSION_ID > 32199 /* this lets us set the port number */
-+ if (connect_charset != NULL)
-+ mysql_options(le->ptr, MYSQL_SET_CHARSET_NAME, connect_charset);
-+
- if (mysql_real_connect(le->ptr, host, user, passwd, NULL, port, socket, client_flags)==NULL) {
+@@ -826,6 +830,8 @@
+ #endif
+ if (mysql_ping(mysql->conn)) {
+ if (mysql_errno(mysql->conn) == 2006) {
++ if (connect_charset != NULL)
++ mysql_options(mysql->conn, MYSQL_SET_CHARSET_NAME, connect_charset);
+ #ifndef MYSQL_USE_MYSQLND
+ if (mysql_real_connect(mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL)
#else
- if (mysql_connect(le->ptr, host, user, passwd)==NULL) {
-@@ -747,6 +757,9 @@
- mysql_options(&mysql->conn, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout);
- }
+@@ -898,6 +904,9 @@
+ if (connect_timeout != -1)
+ mysql_options(mysql->conn, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout);
+ if (connect_charset != NULL)
-+ mysql_options(&mysql->conn, MYSQL_SET_CHARSET_NAME, connect_charset);
++ mysql_options(mysql->conn, MYSQL_SET_CHARSET_NAME, connect_charset);
+
- if (mysql_real_connect(&mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL) {
+ #ifndef MYSQL_USE_MYSQLND
+ if (mysql_real_connect(mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL)
#else
- if (mysql_connect(&mysql->conn, host, user, passwd)==NULL) {
-diff -aur php-5.2.5_p20080206.orig/ext/mysql/php_mysql_structs.h php-5.2.5_p20080206/ext/mysql/php_mysql_structs.h
--- php-5.2.5_p20080206.orig/ext/mysql/php_mysql_structs.h 2008-02-06 14:22:57.510605687 +0100
+++ php-5.2.5_p20080206/ext/mysql/php_mysql_structs.h 2008-02-06 14:23:27.764590355 +0100
@@ -103,6 +103,7 @@