andrey Mon Oct 27 12:09:37 2008 UTC
Modified files: (Branch: PHP_5_3)
/php-src/ext/mysql php_mysql.c
/php-src/ext/mysqli mysqli_nonapi.c
Log:
MFH:
Warning if the library API version differs from the headers used to compile.
Patch versions are not considered but major.minor
Fix build of ext/mysql with 4.0.x and pre.
http://cvs.php.net/viewvc.cgi/php-src/ext/mysql/php_mysql.c?r1=1.213.2.6.2.16.2.28&r2=1.213.2.6.2.16.2.29&diff_format=u
Index: php-src/ext/mysql/php_mysql.c
diff -u php-src/ext/mysql/php_mysql.c:1.213.2.6.2.16.2.28
php-src/ext/mysql/php_mysql.c:1.213.2.6.2.16.2.29
--- php-src/ext/mysql/php_mysql.c:1.213.2.6.2.16.2.28 Tue Oct 21 22:07:42 2008
+++ php-src/ext/mysql/php_mysql.c Mon Oct 27 12:09:36 2008
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_mysql.c,v 1.213.2.6.2.16.2.28 2008/10/21 22:07:42 lbarnaud Exp $ */
+/* $Id: php_mysql.c,v 1.213.2.6.2.16.2.29 2008/10/27 12:09:36 andrey Exp $ */
/* TODO:
*
@@ -130,10 +130,14 @@
static MYSQLND_QCACHE *mysql_mysqlnd_qcache;
#endif
+#if MYSQL_VERSION_ID >= 40101
#define MYSQL_DISABLE_MQ if (mysql->multi_query) { \
mysql_set_server_option(mysql->conn,
MYSQL_OPTION_MULTI_STATEMENTS_OFF); \
mysql->multi_query = 0; \
}
+#else
+#define MYSQL_DISABLE_MQ
+#endif
/* {{{ mysql_functions[]
*/
@@ -632,6 +636,13 @@
zend_bool free_host=0, new_link=0;
long connect_timeout;
+#if !defined(MYSQL_USE_MYSQLND)
+ if ((MYSQL_VERSION_ID / 100) != (mysql_get_client_version() / 100)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING,
+ "Headers and client library
minor version mismatch. Headers:%d Library:%d",
+ MYSQL_VERSION_ID,
mysql_get_client_version());
+ }
+#endif
connect_timeout = MySG(connect_timeout);
@@ -693,8 +704,9 @@
client_flags ^= CLIENT_LOCAL_FILES;
}
+#ifdef CLIENT_MULTI_STATEMENTS
client_flags &= ~CLIENT_MULTI_STATEMENTS; /* don't allow
multi_queries via connect parameter */
-
+#endif
hashed_details_length = spprintf(&hashed_details, 0,
"mysql_%s_%s_%s_%ld", SAFE_STRING(host_and_port), SAFE_STRING(user),
SAFE_STRING(passwd), client_flags);
}
@@ -746,7 +758,12 @@
/* create the link */
mysql = (php_mysql_conn *)
malloc(sizeof(php_mysql_conn));
mysql->active_result_id = 0;
+#ifdef CLIENT_MULTI_STATEMENTS
mysql->multi_query = client_flags &
CLIENT_MULTI_STATEMENTS? 1:0;
+#else
+ mysql->multi_query = 0;
+#endif
+
#ifndef MYSQL_USE_MYSQLND
mysql->conn = mysql_init(NULL);
#else
@@ -794,7 +811,11 @@
}
mysql = (php_mysql_conn *) le->ptr;
mysql->active_result_id = 0;
+#ifdef CLIENT_MULTI_STATEMENTS
mysql->multi_query = client_flags &
CLIENT_MULTI_STATEMENTS? 1:0;
+#else
+ mysql->multi_query = 0;
+#endif
/* ensure that the link did not die */
#if defined(MYSQL_USE_MYSQLND)
mysqlnd_end_psession(mysql->conn);
@@ -860,7 +881,10 @@
mysql = (php_mysql_conn *) emalloc(sizeof(php_mysql_conn));
mysql->active_result_id = 0;
+#ifdef CLIENT_MULTI_STATEMENTS
mysql->multi_query = 1;
+#endif
+
#ifndef MYSQL_USE_MYSQLND
mysql->conn = mysql_init(NULL);
#else
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_nonapi.c?r1=1.54.2.7.2.5.2.15&r2=1.54.2.7.2.5.2.16&diff_format=u
Index: php-src/ext/mysqli/mysqli_nonapi.c
diff -u php-src/ext/mysqli/mysqli_nonapi.c:1.54.2.7.2.5.2.15
php-src/ext/mysqli/mysqli_nonapi.c:1.54.2.7.2.5.2.16
--- php-src/ext/mysqli/mysqli_nonapi.c:1.54.2.7.2.5.2.15 Mon Aug 11
12:33:55 2008
+++ php-src/ext/mysqli/mysqli_nonapi.c Mon Oct 27 12:09:36 2008
@@ -17,7 +17,7 @@
| Ulf Wendel <[EMAIL PROTECTED]>
|
+----------------------------------------------------------------------+
- $Id: mysqli_nonapi.c,v 1.54.2.7.2.5.2.15 2008/08/11 12:33:55 johannes Exp $
+ $Id: mysqli_nonapi.c,v 1.54.2.7.2.5.2.16 2008/10/27 12:09:36 andrey Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -66,6 +66,15 @@
zend_rsrc_list_entry *le;
mysqli_plist_entry *plist = NULL;
+
+#if !defined(MYSQL_USE_MYSQLND)
+ if ((MYSQL_VERSION_ID / 100) != (mysql_get_client_version() / 100)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING,
+ "Headers and client library
minor version mismatch. Headers:%d Library:%d",
+ MYSQL_VERSION_ID,
mysql_get_client_version());
+ }
+#endif
+
if (getThis() && !ZEND_NUM_ARGS() && in_ctor) {
RETURN_NULL();
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php