mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Update mysqlnd, ext/mysql and ext/mysqli - now possible to compile with different
configurations one or the another extension to use libmysql or mysqlnd mixed in one binary
This commit is contained in:
parent
49add03404
commit
725b31fc6c
13 changed files with 118 additions and 117 deletions
|
@ -79,7 +79,7 @@ static int le_result, le_link, le_plink;
|
|||
|
||||
#define SAFE_STRING(s) ((s)?(s):"")
|
||||
|
||||
#if MYSQL_VERSION_ID > 32199 || defined(HAVE_MYSQLND)
|
||||
#if MYSQL_VERSION_ID > 32199 || defined(MYSQL_USE_MYSQLND)
|
||||
# define mysql_row_length_type unsigned long
|
||||
# define HAVE_MYSQL_ERRNO
|
||||
#else
|
||||
|
@ -89,7 +89,7 @@ static int le_result, le_link, le_plink;
|
|||
# endif
|
||||
#endif
|
||||
|
||||
#if MYSQL_VERSION_ID >= 32032 || defined(HAVE_MYSQLND)
|
||||
#if MYSQL_VERSION_ID >= 32032 || defined(MYSQL_USE_MYSQLND)
|
||||
#define HAVE_GETINFO_FUNCS
|
||||
#endif
|
||||
|
||||
|
@ -125,7 +125,7 @@ typedef struct _php_mysql_conn {
|
|||
int multi_query;
|
||||
} php_mysql_conn;
|
||||
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQL_USE_MYSQLND
|
||||
static MYSQLND_ZVAL_PCACHE *mysql_mysqlnd_zval_cache;
|
||||
static MYSQLND_QCACHE *mysql_mysqlnd_qcache;
|
||||
#endif
|
||||
|
@ -223,7 +223,7 @@ static const zend_function_entry mysql_functions[] = {
|
|||
|
||||
/* Dependancies */
|
||||
static const zend_module_dep mysql_deps[] = {
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQL_USE_MYSQLND)
|
||||
ZEND_MOD_REQUIRED("mysqlnd")
|
||||
#endif
|
||||
{NULL, NULL, NULL}
|
||||
|
@ -262,7 +262,7 @@ void timeout(int sig);
|
|||
|
||||
#define CHECK_LINK(link) { if (link==-1) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "A link to the server could not be established"); RETURN_FALSE; } }
|
||||
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQL_USE_MYSQLND)
|
||||
#define PHPMY_UNBUFFERED_QUERY_CHECK() \
|
||||
{\
|
||||
if (mysql->active_result_id) { \
|
||||
|
@ -401,7 +401,7 @@ PHP_INI_BEGIN()
|
|||
STD_PHP_INI_ENTRY("mysql.connect_timeout", "60", PHP_INI_ALL, OnUpdateLong, connect_timeout, zend_mysql_globals, mysql_globals)
|
||||
STD_PHP_INI_BOOLEAN("mysql.trace_mode", "0", PHP_INI_ALL, OnUpdateLong, trace_mode, zend_mysql_globals, mysql_globals)
|
||||
STD_PHP_INI_BOOLEAN("mysql.allow_local_infile", "1", PHP_INI_SYSTEM, OnUpdateLong, allow_local_infile, zend_mysql_globals, mysql_globals)
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQL_USE_MYSQLND
|
||||
STD_PHP_INI_ENTRY("mysql.cache_size", "2000", PHP_INI_SYSTEM, OnUpdateLong, cache_size, zend_mysql_globals, mysql_globals)
|
||||
#endif
|
||||
PHP_INI_END()
|
||||
|
@ -422,7 +422,7 @@ static PHP_GINIT_FUNCTION(mysql)
|
|||
mysql_globals->trace_mode = 0;
|
||||
mysql_globals->allow_local_infile = 1;
|
||||
mysql_globals->result_allocated = 0;
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQL_USE_MYSQLND
|
||||
mysql_globals->cache_size = 0;
|
||||
mysql_globals->mysqlnd_thd_zval_cache = NULL;
|
||||
#endif
|
||||
|
@ -449,7 +449,7 @@ ZEND_MODULE_STARTUP_D(mysql)
|
|||
REGISTER_LONG_CONSTANT("MYSQL_CLIENT_INTERACTIVE", CLIENT_INTERACTIVE, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("MYSQL_CLIENT_IGNORE_SPACE", CLIENT_IGNORE_SPACE, CONST_CS | CONST_PERSISTENT);
|
||||
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQL_USE_MYSQLND
|
||||
#if MYSQL_VERSION_ID >= 40000
|
||||
if (mysql_server_init(0, NULL, NULL)) {
|
||||
return FAILURE;
|
||||
|
@ -468,7 +468,7 @@ ZEND_MODULE_STARTUP_D(mysql)
|
|||
*/
|
||||
PHP_MSHUTDOWN_FUNCTION(mysql)
|
||||
{
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQL_USE_MYSQLND
|
||||
#if MYSQL_VERSION_ID >= 40000
|
||||
#ifdef PHP_WIN32
|
||||
unsigned long client_ver = mysql_get_client_version();
|
||||
|
@ -497,7 +497,7 @@ PHP_MSHUTDOWN_FUNCTION(mysql)
|
|||
*/
|
||||
PHP_RINIT_FUNCTION(mysql)
|
||||
{
|
||||
#if !defined(HAVE_MYSQLND) && defined(ZTS) && MYSQL_VERSION_ID >= 40000
|
||||
#if !defined(MYSQL_USE_MYSQLND) && defined(ZTS) && MYSQL_VERSION_ID >= 40000
|
||||
if (mysql_thread_init()) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
@ -509,7 +509,7 @@ PHP_RINIT_FUNCTION(mysql)
|
|||
MySG(connect_errno) =0;
|
||||
MySG(result_allocated) = 0;
|
||||
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQL_USE_MYSQLND
|
||||
MySG(mysqlnd_thd_zval_cache) = mysqlnd_palloc_rinit(mysql_mysqlnd_zval_cache);
|
||||
#endif
|
||||
|
||||
|
@ -521,7 +521,7 @@ PHP_RINIT_FUNCTION(mysql)
|
|||
*/
|
||||
PHP_RSHUTDOWN_FUNCTION(mysql)
|
||||
{
|
||||
#if !defined(HAVE_MYSQLND) && defined(ZTS) && MYSQL_VERSION_ID >= 40000
|
||||
#if !defined(MYSQL_USE_MYSQLND) && defined(ZTS) && MYSQL_VERSION_ID >= 40000
|
||||
mysql_thread_end();
|
||||
#endif
|
||||
|
||||
|
@ -534,7 +534,7 @@ PHP_RSHUTDOWN_FUNCTION(mysql)
|
|||
if (MySG(connect_error)!=NULL) {
|
||||
efree(MySG(connect_error));
|
||||
}
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQL_USE_MYSQLND
|
||||
mysqlnd_palloc_rshutdown(MySG(mysqlnd_thd_zval_cache));
|
||||
#endif
|
||||
|
||||
|
@ -555,13 +555,13 @@ PHP_MINFO_FUNCTION(mysql)
|
|||
snprintf(buf, sizeof(buf), "%ld", MySG(num_links));
|
||||
php_info_print_table_row(2, "Active Links", buf);
|
||||
php_info_print_table_row(2, "Client API version", mysql_get_client_info());
|
||||
#if !defined (PHP_WIN32) && !defined (NETWARE) && !defined(HAVE_MYSQLND)
|
||||
#if !defined (PHP_WIN32) && !defined (NETWARE) && !defined(MYSQL_USE_MYSQLND)
|
||||
php_info_print_table_row(2, "MYSQL_MODULE_TYPE", PHP_MYSQL_TYPE);
|
||||
php_info_print_table_row(2, "MYSQL_SOCKET", MYSQL_UNIX_ADDR);
|
||||
php_info_print_table_row(2, "MYSQL_INCLUDE", PHP_MYSQL_INCLUDE);
|
||||
php_info_print_table_row(2, "MYSQL_LIBS", PHP_MYSQL_LIBS);
|
||||
#endif
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQL_USE_MYSQLND)
|
||||
{
|
||||
zval values;
|
||||
|
||||
|
@ -594,7 +594,7 @@ PHP_MINFO_FUNCTION(mysql)
|
|||
MYSQL_DO_CONNECT_CLEANUP(); \
|
||||
RETURN_FALSE;
|
||||
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQL_USE_MYSQLND
|
||||
#define MYSQL_PORT 0
|
||||
#endif
|
||||
|
||||
|
@ -725,7 +725,7 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
|
|||
mysql = (php_mysql_conn *) malloc(sizeof(php_mysql_conn));
|
||||
mysql->active_result_id = 0;
|
||||
mysql->multi_query = 1;
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQL_USE_MYSQLND
|
||||
mysql->conn = mysql_init(NULL);
|
||||
#else
|
||||
mysql->conn = mysql_init(persistent);
|
||||
|
@ -733,7 +733,7 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
|
|||
|
||||
if (connect_timeout != -1)
|
||||
mysql_options(mysql->conn, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout);
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQL_USE_MYSQLND
|
||||
if (mysql_real_connect(mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL)
|
||||
#else
|
||||
if (mysqlnd_connect(mysql->conn, host, user, passwd, 0, NULL, 0,
|
||||
|
@ -775,7 +775,7 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
|
|||
/* ensure that the link did not die */
|
||||
if (mysql_ping(mysql->conn)) {
|
||||
if (mysql_errno(mysql->conn) == 2006) {
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQL_USE_MYSQLND
|
||||
if (mysql_real_connect(mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL)
|
||||
#else
|
||||
if (mysqlnd_connect(mysql->conn, host, user, passwd, 0, NULL, 0,
|
||||
|
@ -790,7 +790,7 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
|
|||
mysql_options(mysql->conn, MYSQL_OPT_LOCAL_INFILE, (char *)&MySG(allow_local_infile));
|
||||
}
|
||||
} else {
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQL_USE_MYSQLND
|
||||
mysqlnd_restart_psession(mysql->conn);
|
||||
#endif
|
||||
}
|
||||
|
@ -835,7 +835,7 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
|
|||
mysql = (php_mysql_conn *) emalloc(sizeof(php_mysql_conn));
|
||||
mysql->active_result_id = 0;
|
||||
mysql->multi_query = 1;
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQL_USE_MYSQLND
|
||||
mysql->conn = mysql_init(NULL);
|
||||
#else
|
||||
mysql->conn = mysql_init(persistent);
|
||||
|
@ -844,7 +844,7 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
|
|||
if (connect_timeout != -1)
|
||||
mysql_options(mysql->conn, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout);
|
||||
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQL_USE_MYSQLND
|
||||
if (mysql_real_connect(mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL)
|
||||
#else
|
||||
if (mysqlnd_connect(mysql->conn, host, user, passwd, 0, NULL, 0,
|
||||
|
@ -861,7 +861,7 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
|
|||
MySG(connect_errno) = mysql_errno(mysql->conn);
|
||||
#endif
|
||||
/* free mysql structure */
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQL_USE_MYSQLND
|
||||
mysqli_close(mysql->conn, MYSQLI_CLOSE_DISCONNECTED);
|
||||
#endif
|
||||
efree(hashed_details);
|
||||
|
@ -1159,7 +1159,7 @@ PHP_FUNCTION(mysql_stat)
|
|||
int id = -1;
|
||||
php_mysql_conn *mysql;
|
||||
char *stat;
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQL_USE_MYSQLND
|
||||
uint stat_len;
|
||||
#endif
|
||||
|
||||
|
@ -1174,7 +1174,7 @@ PHP_FUNCTION(mysql_stat)
|
|||
ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, &mysql_link, id, "MySQL-Link", le_link, le_plink);
|
||||
|
||||
PHPMY_UNBUFFERED_QUERY_CHECK();
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQL_USE_MYSQLND
|
||||
if ((stat = (char *)mysql_stat(mysql->conn))) {
|
||||
RETURN_STRING(stat, 1);
|
||||
#else
|
||||
|
@ -1316,7 +1316,7 @@ static void php_mysql_do_query_general(zval **query, zval **mysql_link, int link
|
|||
|
||||
convert_to_string_ex(query);
|
||||
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQL_USE_MYSQLND
|
||||
/* check explain */
|
||||
if (MySG(trace_mode)) {
|
||||
if (!strncasecmp("select", Z_STRVAL_PP(query), 6)){
|
||||
|
@ -1836,7 +1836,7 @@ PHP_FUNCTION(mysql_result)
|
|||
{
|
||||
zval **result, **row, **field=NULL;
|
||||
MYSQL_RES *mysql_result;
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQL_USE_MYSQLND
|
||||
MYSQL_ROW sql_row;
|
||||
mysql_row_length_type *sql_row_lengths;
|
||||
#endif
|
||||
|
@ -1915,7 +1915,7 @@ PHP_FUNCTION(mysql_result)
|
|||
}
|
||||
}
|
||||
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQL_USE_MYSQLND
|
||||
if ((sql_row=mysql_fetch_row(mysql_result))==NULL
|
||||
|| (sql_row_lengths=mysql_fetch_lengths(mysql_result))==NULL) { /* shouldn't happen? */
|
||||
RETURN_FALSE;
|
||||
|
@ -1984,7 +1984,7 @@ static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type,
|
|||
MYSQL_RES *mysql_result;
|
||||
zval *res, *ctor_params = NULL;
|
||||
zend_class_entry *ce = NULL;
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQL_USE_MYSQLND
|
||||
int i;
|
||||
MYSQL_FIELD *mysql_field;
|
||||
MYSQL_ROW mysql_row;
|
||||
|
@ -2046,7 +2046,7 @@ static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type,
|
|||
|
||||
ZEND_FETCH_RESOURCE(mysql_result, MYSQL_RES *, result, -1, "MySQL result", le_result);
|
||||
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQL_USE_MYSQLND
|
||||
if ((mysql_row = mysql_fetch_row(mysql_result)) == NULL ||
|
||||
(mysql_row_lengths = mysql_fetch_lengths(mysql_result)) == NULL) {
|
||||
RETURN_FALSE;
|
||||
|
@ -2169,7 +2169,7 @@ static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type,
|
|||
Gets a result row as an enumerated array */
|
||||
PHP_FUNCTION(mysql_fetch_row)
|
||||
{
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQL_USE_MYSQLND
|
||||
MYSQL_RES *result;
|
||||
zval *mysql_result;
|
||||
|
||||
|
@ -2203,7 +2203,7 @@ PHP_FUNCTION(mysql_fetch_object)
|
|||
Fetch a result row as an array (associative, numeric or both) */
|
||||
PHP_FUNCTION(mysql_fetch_array)
|
||||
{
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQL_USE_MYSQLND
|
||||
php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0, 2, 0);
|
||||
#else
|
||||
MYSQL_RES *result;
|
||||
|
@ -2225,7 +2225,7 @@ PHP_FUNCTION(mysql_fetch_array)
|
|||
Fetch a result row as an associative array */
|
||||
PHP_FUNCTION(mysql_fetch_assoc)
|
||||
{
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQL_USE_MYSQLND
|
||||
php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQL_ASSOC, 1, 0);
|
||||
#else
|
||||
MYSQL_RES *result;
|
||||
|
@ -2302,7 +2302,7 @@ static char *php_mysql_get_field_name(int field_type)
|
|||
case FIELD_TYPE_VAR_STRING:
|
||||
return "string";
|
||||
break;
|
||||
#if MYSQL_VERSION_ID > 50002 || defined(HAVE_MYSQLND)
|
||||
#if MYSQL_VERSION_ID > 50002 || defined(MYSQL_USE_MYSQLND)
|
||||
case MYSQL_TYPE_BIT:
|
||||
#endif
|
||||
#ifdef MYSQL_HAS_TINY
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue