diff options
| author | Antony Dovgal <tony2001@php.net> | 2007-04-14 10:19:19 +0000 | 
|---|---|---|
| committer | Antony Dovgal <tony2001@php.net> | 2007-04-14 10:19:19 +0000 | 
| commit | 07435262b9ce24423cd0b82c0a4cf0e710c3b419 (patch) | |
| tree | 53e94f4499c108aae419d24b3bf77bf5bac64b85 /ext/mysql/php_mysql.c | |
| parent | b62d120580edeaae4e50a63f44ef15ab460d42fc (diff) | |
| download | php-git-07435262b9ce24423cd0b82c0a4cf0e710c3b419.tar.gz | |
MFH: fix #41083 (mysql_ping() requires MYSQL_OPT_RECONNECT to be set since MySQL 5.0.13)
Diffstat (limited to 'ext/mysql/php_mysql.c')
| -rw-r--r-- | ext/mysql/php_mysql.c | 22 | 
1 files changed, 19 insertions, 3 deletions
diff --git a/ext/mysql/php_mysql.c b/ext/mysql/php_mysql.c index 91df858c96..b0e54ad47b 100644 --- a/ext/mysql/php_mysql.c +++ b/ext/mysql/php_mysql.c @@ -487,6 +487,9 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)  #if MYSQL_VERSION_ID <= 32230  	void (*handler) (int);  #endif +#if MYSQL_VERSION_ID > 50012 +	my_bool my_true = 1; +#endif  	zval **z_host=NULL, **z_user=NULL, **z_passwd=NULL, **z_new_link=NULL, **z_client_flags=NULL;  	zend_bool free_host=0, new_link=0;  	long connect_timeout; @@ -669,8 +672,14 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)  #if MYSQL_VERSION_ID > 32199 /* this lets us set the port number */  			mysql_init(&mysql->conn); -			if (connect_timeout != -1) +#if MYSQL_VERSION_ID > 50012 +			/* Reconnect has been off by default since MySQL 5.0.3;  +			   this option is new in 5.0.13 and provides a way to set reconnection behavior explicitly. */ +			mysql_options(&mysql->conn, MYSQL_OPT_RECONNECT, (const char *)&my_true); +#endif +			if (connect_timeout != -1) {  				mysql_options(&mysql->conn, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout); +			}  			if (mysql_real_connect(&mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL) {  #else @@ -774,8 +783,15 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)  #if MYSQL_VERSION_ID > 32199 /* this lets us set the port number */  		mysql_init(&mysql->conn); -		if (connect_timeout != -1) -				mysql_options(&mysql->conn, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout); +#if MYSQL_VERSION_ID > 50012 +		/* Reconnect has been off by default since MySQL 5.0.3;  +		 this option is new in 5.0.13 and provides a way to set reconnection behavior explicitly. */ +		mysql_options(&mysql->conn, MYSQL_OPT_RECONNECT, (const char *)&my_true); +#endif + +		if (connect_timeout != -1) { +			mysql_options(&mysql->conn, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout); +		}  		if (mysql_real_connect(&mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL) {  #else  | 
