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
|
@ -158,5 +158,6 @@ if test "$PHP_MYSQL" != "no"; then
|
|||
|
||||
if test "$PHP_MYSQL" = "mysqlnd"; then
|
||||
PHP_ADD_EXTENSION_DEP(mysql, mysqlnd)
|
||||
AC_DEFINE([MYSQL_USE_MYSQLND], 1, [Whether mysqlnd is enabled])
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -14,7 +14,7 @@ if (PHP_MYSQL != "no") {
|
|||
WARNING("mysql not enabled; libraries and headers not found");
|
||||
}
|
||||
} else {
|
||||
AC_DEFINE('HAVE_MYSQLND', 1, 'MySQL native driver support enabled');
|
||||
AC_DEFINE('MYSQL_USE_MYSQLND', 1, 'MySQL native driver support enabled');
|
||||
ADD_EXTENSION_DEP('mysql', 'mysqlnd', true);
|
||||
EXTENSION("mysql", "php_mysql.c");
|
||||
AC_DEFINE('HAVE_MYSQL', 1, 'Have MySQL library');
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -35,14 +35,14 @@
|
|||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQL_USE_MYSQLND)
|
||||
#include "ext/mysqlnd/mysqlnd.h"
|
||||
#include "ext/mysql/mysql_mysqlnd.h"
|
||||
#include "mysql_mysqlnd.h"
|
||||
#else
|
||||
#include <mysql.h>
|
||||
#endif
|
||||
|
||||
#if (MYSQL_VERSION_ID >= 40113 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50007 || HAVE_MYSQLND
|
||||
#if (MYSQL_VERSION_ID >= 40113 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50007 || MYSQL_USE_MYSQLND
|
||||
#define MYSQL_HAS_SET_CHARSET
|
||||
#endif
|
||||
|
||||
|
@ -114,7 +114,7 @@ ZEND_BEGIN_MODULE_GLOBALS(mysql)
|
|||
long result_allocated;
|
||||
long trace_mode;
|
||||
long allow_local_infile;
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQL_USE_MYSQLND
|
||||
MYSQLND_THD_ZVAL_PCACHE *mysqlnd_thd_zval_cache;
|
||||
MYSQLND_QCACHE *mysqlnd_qcache;
|
||||
long cache_size;
|
||||
|
|
|
@ -73,5 +73,6 @@ if test "$PHP_MYSQLI" != "no"; then
|
|||
|
||||
if test "$PHP_MYSQLI" = "mysqlnd"; then
|
||||
PHP_ADD_EXTENSION_DEP(mysqli, mysqlnd)
|
||||
AC_DEFINE([MYSQLI_USE_MYSQLND], 1, [Whether mysqlnd is enabled])
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -33,7 +33,7 @@ if (PHP_MYSQLI != "no") {
|
|||
}
|
||||
} else {
|
||||
EXTENSION("mysqli", mysqli_source);
|
||||
AC_DEFINE('HAVE_MYSQLND', 1, 'MySQLi with native driver support enabled');
|
||||
AC_DEFINE('MYSQLI_USE_MYSQLND', 1, 'MySQLi with native driver support enabled');
|
||||
AC_DEFINE('HAVE_MYSQLILIB', 1, 'Have MySQLi library');
|
||||
ADD_EXTENSION_DEP('mysqli', 'mysqlnd', true);
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ zend_class_entry *mysqli_driver_class_entry;
|
|||
zend_class_entry *mysqli_warning_class_entry;
|
||||
zend_class_entry *mysqli_exception_class_entry;
|
||||
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQLI_USE_MYSQLND
|
||||
MYSQLND_ZVAL_PCACHE *mysqli_mysqlnd_zval_cache;
|
||||
MYSQLND_QCACHE *mysqli_mysqlnd_qcache;
|
||||
#endif
|
||||
|
@ -69,7 +69,7 @@ static int le_pmysqli;
|
|||
void php_mysqli_dtor_p_elements(void *data)
|
||||
{
|
||||
MYSQL *mysql = (MYSQL *) data;
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQLI_USE_MYSQLND)
|
||||
TSRMLS_FETCH();
|
||||
|
||||
mysqlnd_end_psession(mysql);
|
||||
|
@ -94,7 +94,7 @@ int php_le_pmysqli(void)
|
|||
return le_pmysqli;
|
||||
}
|
||||
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQLI_USE_MYSQLND
|
||||
/* {{{ php_free_stmt_bind_buffer */
|
||||
void php_free_stmt_bind_buffer(BIND_BUFFER bbuf, int type)
|
||||
{
|
||||
|
@ -151,7 +151,7 @@ void php_clear_stmt_bind(MY_STMT *stmt TSRMLS_DC)
|
|||
mysqlnd keeps track of the binding and has freed its
|
||||
structures in stmt_close() above
|
||||
*/
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQLI_USE_MYSQLND
|
||||
/* Clean param bind */
|
||||
php_free_stmt_bind_buffer(stmt->param, FETCH_SIMPLE);
|
||||
/* Clean output bind */
|
||||
|
@ -499,7 +499,7 @@ const static zend_module_dep mysqli_deps[] = {
|
|||
#if defined(HAVE_SPL) && ((PHP_MAJOR_VERSION > 5) || (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION >= 1))
|
||||
ZEND_MOD_REQUIRED("spl")
|
||||
#endif
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQLI_USE_MYSQLND)
|
||||
ZEND_MOD_REQUIRED("mysqlnd")
|
||||
#endif
|
||||
{NULL, NULL, NULL}
|
||||
|
@ -547,7 +547,7 @@ PHP_INI_BEGIN()
|
|||
STD_PHP_INI_ENTRY("mysqli.default_socket", NULL, PHP_INI_ALL, OnUpdateStringUnempty, default_socket, zend_mysqli_globals, mysqli_globals)
|
||||
STD_PHP_INI_BOOLEAN("mysqli.reconnect", "0", PHP_INI_SYSTEM, OnUpdateLong, reconnect, zend_mysqli_globals, mysqli_globals)
|
||||
STD_PHP_INI_BOOLEAN("mysqli.allow_local_infile", "1", PHP_INI_SYSTEM, OnUpdateLong, allow_local_infile, zend_mysqli_globals, mysqli_globals)
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQLI_USE_MYSQLND
|
||||
STD_PHP_INI_ENTRY("mysqli.cache_size", "2000", PHP_INI_SYSTEM, OnUpdateLong, cache_size, zend_mysqli_globals, mysqli_globals)
|
||||
#endif
|
||||
PHP_INI_END()
|
||||
|
@ -579,7 +579,7 @@ static PHP_GINIT_FUNCTION(mysqli)
|
|||
#else
|
||||
mysqli_globals->embedded = 0;
|
||||
#endif
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQLI_USE_MYSQLND
|
||||
mysqli_globals->cache_size = 0;
|
||||
mysqli_globals->mysqlnd_thd_zval_cache = NULL;
|
||||
#endif
|
||||
|
@ -594,7 +594,7 @@ PHP_MINIT_FUNCTION(mysqli)
|
|||
zend_object_handlers *std_hnd = zend_get_std_object_handlers();
|
||||
|
||||
REGISTER_INI_ENTRIES();
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQLI_USE_MYSQLND
|
||||
#if MYSQL_VERSION_ID >= 40000
|
||||
if (mysql_server_init(0, NULL, NULL)) {
|
||||
return FAILURE;
|
||||
|
@ -666,7 +666,7 @@ PHP_MINIT_FUNCTION(mysqli)
|
|||
REGISTER_LONG_CONSTANT("MYSQLI_OPT_CONNECT_TIMEOUT", MYSQL_OPT_CONNECT_TIMEOUT, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_OPT_LOCAL_INFILE", MYSQL_OPT_LOCAL_INFILE, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_INIT_COMMAND", MYSQL_INIT_COMMAND, CONST_CS | CONST_PERSISTENT);
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQLI_USE_MYSQLND)
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_OPT_NET_CMD_BUFFER_SIZE", MYSQLND_OPT_NET_CMD_BUFFER_SIZE, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_OPT_NET_READ_BUFFER_SIZE", MYSQLND_OPT_NET_READ_BUFFER_SIZE, CONST_CS | CONST_PERSISTENT);
|
||||
#endif
|
||||
|
@ -685,7 +685,7 @@ PHP_MINIT_FUNCTION(mysqli)
|
|||
/* for mysqli_query */
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_STORE_RESULT", MYSQLI_STORE_RESULT, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_USE_RESULT", MYSQLI_USE_RESULT, CONST_CS | CONST_PERSISTENT);
|
||||
#if defined(HAVE_MYSQLND) && defined(MYSQLND_THREADED)
|
||||
#if defined(MYSQLI_USE_MYSQLND) && defined(MYSQLND_THREADED)
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_BG_STORE_RESULT", MYSQLI_BG_STORE_RESULT, CONST_CS | CONST_PERSISTENT);
|
||||
#endif
|
||||
|
||||
|
@ -697,7 +697,7 @@ PHP_MINIT_FUNCTION(mysqli)
|
|||
/* for mysqli_stmt_set_attr */
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH", STMT_ATTR_UPDATE_MAX_LENGTH, CONST_CS | CONST_PERSISTENT);
|
||||
|
||||
#if MYSQL_VERSION_ID > 50003 || defined(HAVE_MYSQLND)
|
||||
#if MYSQL_VERSION_ID > 50003 || defined(MYSQLI_USE_MYSQLND)
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_STMT_ATTR_CURSOR_TYPE", STMT_ATTR_CURSOR_TYPE, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_CURSOR_TYPE_NO_CURSOR", CURSOR_TYPE_NO_CURSOR, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_CURSOR_TYPE_READ_ONLY", CURSOR_TYPE_READ_ONLY, CONST_CS | CONST_PERSISTENT);
|
||||
|
@ -705,7 +705,7 @@ PHP_MINIT_FUNCTION(mysqli)
|
|||
REGISTER_LONG_CONSTANT("MYSQLI_CURSOR_TYPE_SCROLLABLE", CURSOR_TYPE_SCROLLABLE, CONST_CS | CONST_PERSISTENT);
|
||||
#endif
|
||||
|
||||
#if MYSQL_VERSION_ID > 50007 || defined(HAVE_MYSQLND)
|
||||
#if MYSQL_VERSION_ID > 50007 || defined(MYSQLI_USE_MYSQLND)
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_STMT_ATTR_PREFETCH_ROWS", STMT_ATTR_PREFETCH_ROWS, CONST_CS | CONST_PERSISTENT);
|
||||
#endif
|
||||
|
||||
|
@ -725,11 +725,11 @@ PHP_MINIT_FUNCTION(mysqli)
|
|||
REGISTER_LONG_CONSTANT("MYSQLI_GROUP_FLAG", GROUP_FLAG, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_ENUM_FLAG", ENUM_FLAG, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_BINARY_FLAG", BINARY_FLAG, CONST_CS | CONST_PERSISTENT);
|
||||
#if MYSQL_VERSION_ID > 50001 || defined(HAVE_MYSQLND)
|
||||
#if MYSQL_VERSION_ID > 50001 || defined(MYSQLI_USE_MYSQLND)
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_NO_DEFAULT_VALUE_FLAG", NO_DEFAULT_VALUE_FLAG, CONST_CS | CONST_PERSISTENT);
|
||||
#endif
|
||||
|
||||
#if (MYSQL_VERSION_ID > 51122 && MYSQL_VERSION_ID < 60000) || (MYSQL_VERSION_ID > 60003) || defined(HAVE_MYSQLND)
|
||||
#if (MYSQL_VERSION_ID > 51122 && MYSQL_VERSION_ID < 60000) || (MYSQL_VERSION_ID > 60003) || defined(MYSQLI_USE_MYSQLND)
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_ON_UPDATE_NOW_FLAG", ON_UPDATE_NOW_FLAG, CONST_CS | CONST_PERSISTENT);
|
||||
#endif
|
||||
|
||||
|
@ -760,7 +760,7 @@ PHP_MINIT_FUNCTION(mysqli)
|
|||
REGISTER_LONG_CONSTANT("MYSQLI_TYPE_INTERVAL", FIELD_TYPE_INTERVAL, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_TYPE_GEOMETRY", FIELD_TYPE_GEOMETRY, CONST_CS | CONST_PERSISTENT);
|
||||
|
||||
#if MYSQL_VERSION_ID > 50002 || defined(HAVE_MYSQLND)
|
||||
#if MYSQL_VERSION_ID > 50002 || defined(MYSQLI_USE_MYSQLND)
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_TYPE_NEWDECIMAL", FIELD_TYPE_NEWDECIMAL, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_TYPE_BIT", FIELD_TYPE_BIT, CONST_CS | CONST_PERSISTENT);
|
||||
#endif
|
||||
|
@ -781,7 +781,7 @@ PHP_MINIT_FUNCTION(mysqli)
|
|||
REGISTER_LONG_CONSTANT("MYSQLI_REPORT_OFF", 0, CONST_CS | CONST_PERSISTENT);
|
||||
|
||||
/* We use non-nested macros with expansion, as VC has problems */
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQLI_USE_MYSQLND
|
||||
REGISTER_LONG_CONSTANT("MYSQLI_DEBUG_TRACE_ENABLED", MYSQLND_DBG_ENABLED, CONST_CS | CONST_PERSISTENT);
|
||||
#else
|
||||
#ifndef DBUG_OFF
|
||||
|
@ -799,7 +799,7 @@ PHP_MINIT_FUNCTION(mysqli)
|
|||
*/
|
||||
PHP_MSHUTDOWN_FUNCTION(mysqli)
|
||||
{
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQLI_USE_MYSQLND
|
||||
#if MYSQL_VERSION_ID >= 40000
|
||||
#ifdef PHP_WIN32
|
||||
unsigned long client_ver = mysql_get_client_version();
|
||||
|
@ -835,14 +835,14 @@ PHP_MSHUTDOWN_FUNCTION(mysqli)
|
|||
*/
|
||||
PHP_RINIT_FUNCTION(mysqli)
|
||||
{
|
||||
#if !defined(HAVE_MYSQLND) && defined(ZTS) && MYSQL_VERSION_ID >= 40000
|
||||
#if !defined(MYSQLI_USE_MYSQLND) && defined(ZTS) && MYSQL_VERSION_ID >= 40000
|
||||
if (mysql_thread_init()) {
|
||||
return FAILURE;
|
||||
}
|
||||
#endif
|
||||
MyG(error_msg) = NULL;
|
||||
MyG(error_no) = 0;
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQLI_USE_MYSQLND
|
||||
MyG(mysqlnd_thd_zval_cache) = mysqlnd_palloc_rinit(mysqli_mysqlnd_zval_cache);
|
||||
#endif
|
||||
|
||||
|
@ -856,13 +856,13 @@ PHP_RSHUTDOWN_FUNCTION(mysqli)
|
|||
{
|
||||
/* check persistent connections, move used to free */
|
||||
|
||||
#if !defined(HAVE_MYSQLND) && defined(ZTS) && MYSQL_VERSION_ID >= 40000
|
||||
#if !defined(MYSQLI_USE_MYSQLND) && defined(ZTS) && MYSQL_VERSION_ID >= 40000
|
||||
mysql_thread_end();
|
||||
#endif
|
||||
if (MyG(error_msg)) {
|
||||
efree(MyG(error_msg));
|
||||
}
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQLI_USE_MYSQLND
|
||||
mysqlnd_palloc_rshutdown(MyG(mysqlnd_thd_zval_cache));
|
||||
#endif
|
||||
return SUCCESS;
|
||||
|
@ -885,7 +885,7 @@ PHP_MINFO_FUNCTION(mysqli)
|
|||
php_info_print_table_row(2, "Inactive Persistent Links", buf);
|
||||
snprintf(buf, sizeof(buf), "%ld", MyG(num_links));
|
||||
php_info_print_table_row(2, "Active Links", buf);
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
php_info_print_table_row(2, "Client API header version", MYSQL_SERVER_VERSION);
|
||||
php_info_print_table_row(2, "MYSQLI_SOCKET", MYSQL_UNIX_ADDR);
|
||||
#else
|
||||
|
@ -1002,7 +1002,7 @@ ZEND_FUNCTION(mysqli_result_construct)
|
|||
case MYSQLI_USE_RESULT:
|
||||
result = mysql_use_result(mysql->mysql);
|
||||
break;
|
||||
#if defined(HAVE_MYSQLND) && defined(MYSQLND_THREADED)
|
||||
#if defined(MYSQLI_USE_MYSQLND) && defined(MYSQLND_THREADED)
|
||||
case MYSQLI_BG_STORE_RESULT:
|
||||
result = mysqli_bg_store_result(mysql->mysql);
|
||||
break;
|
||||
|
@ -1033,7 +1033,7 @@ void php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAMETERS, int override_flags
|
|||
long fetchtype;
|
||||
zval *ctor_params = NULL;
|
||||
zend_class_entry *ce = NULL;
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
unsigned int i;
|
||||
MYSQL_FIELD *fields;
|
||||
MYSQL_ROW row;
|
||||
|
@ -1077,7 +1077,7 @@ void php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAMETERS, int override_flags
|
|||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
if (!(row = mysql_fetch_row(result))) {
|
||||
RETURN_NULL();
|
||||
}
|
||||
|
@ -1203,7 +1203,7 @@ PHP_MYSQLI_API void php_mysqli_set_error(long mysql_errno, char *mysql_err TSRML
|
|||
}
|
||||
/* }}} */
|
||||
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
|
||||
#define ALLOC_CALLBACK_ARGS(a, b, c)\
|
||||
if (c) {\
|
||||
|
|
|
@ -76,7 +76,7 @@ PHP_FUNCTION(mysqli_autocommit)
|
|||
/* }}} */
|
||||
|
||||
/* {{{ mysqli_stmt_bind_param_do_bind */
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQLI_USE_MYSQLND
|
||||
static
|
||||
int mysqli_stmt_bind_param_do_bind(MY_STMT *stmt, unsigned int argc, unsigned int num_vars,
|
||||
zval ***args, unsigned int start, const char * const types TSRMLS_DC)
|
||||
|
@ -271,7 +271,7 @@ PHP_FUNCTION(mysqli_stmt_bind_param)
|
|||
/* }}} */
|
||||
|
||||
/* {{{ mysqli_stmt_bind_result_do_bind */
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQLI_USE_MYSQLND
|
||||
/* TODO:
|
||||
do_alloca, free_alloca
|
||||
*/
|
||||
|
@ -345,7 +345,7 @@ mysqli_stmt_bind_result_do_bind(MY_STMT *stmt, zval ***args, unsigned int argc,
|
|||
break;
|
||||
|
||||
case MYSQL_TYPE_LONGLONG:
|
||||
#if MYSQL_VERSION_ID > 50002 || defined(HAVE_MYSQLND)
|
||||
#if MYSQL_VERSION_ID > 50002 || defined(MYSQLI_USE_MYSQLND)
|
||||
case MYSQL_TYPE_BIT:
|
||||
#endif
|
||||
stmt->result.buf[ofs].type = IS_STRING;
|
||||
|
@ -695,7 +695,7 @@ PHP_FUNCTION(mysqli_stmt_execute)
|
|||
{
|
||||
MY_STMT *stmt;
|
||||
zval *mysql_stmt;
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQLI_USE_MYSQLND
|
||||
unsigned int i;
|
||||
#endif
|
||||
|
||||
|
@ -704,7 +704,7 @@ PHP_FUNCTION(mysqli_stmt_execute)
|
|||
}
|
||||
MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
|
||||
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQLI_USE_MYSQLND
|
||||
for (i = 0; i < stmt->param.var_cnt; i++) {
|
||||
if (stmt->param.vars[i]) {
|
||||
if ( !(stmt->param.is_null[i] = (stmt->param.vars[i]->type == IS_NULL)) ) {
|
||||
|
@ -744,7 +744,7 @@ PHP_FUNCTION(mysqli_stmt_execute)
|
|||
}
|
||||
/* }}} */
|
||||
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQLI_USE_MYSQLND
|
||||
/* {{{ void mysqli_stmt_fetch_libmysql
|
||||
Fetch results from a prepared statement into the bound variables */
|
||||
void mysqli_stmt_fetch_libmysql(INTERNAL_FUNCTION_PARAMETERS)
|
||||
|
@ -922,7 +922,7 @@ void mysqli_stmt_fetch_mysqlnd(INTERNAL_FUNCTION_PARAMETERS)
|
|||
Fetch results from a prepared statement into the bound variables */
|
||||
PHP_FUNCTION(mysqli_stmt_fetch)
|
||||
{
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
mysqli_stmt_fetch_libmysql(INTERNAL_FUNCTION_PARAM_PASSTHRU);
|
||||
#else
|
||||
mysqli_stmt_fetch_mysqlnd(INTERNAL_FUNCTION_PARAM_PASSTHRU);
|
||||
|
@ -1062,7 +1062,7 @@ PHP_FUNCTION(mysqli_fetch_lengths)
|
|||
Get a result row as an enumerated array */
|
||||
PHP_FUNCTION(mysqli_fetch_row)
|
||||
{
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQLI_NUM, 0);
|
||||
#else
|
||||
MYSQL_RES *result;
|
||||
|
@ -1256,7 +1256,7 @@ PHP_FUNCTION(mysqli_init)
|
|||
MYSQLI_RESOURCE *mysqli_resource;
|
||||
MY_MYSQL *mysql = (MY_MYSQL *)ecalloc(1, sizeof(MY_MYSQL));
|
||||
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
if (!(mysql->mysql = mysql_init(NULL)))
|
||||
#else
|
||||
/*
|
||||
|
@ -1327,7 +1327,7 @@ PHP_FUNCTION(mysqli_kill)
|
|||
|
||||
/* {{{ proto void mysqli_set_local_infile_default(object link)
|
||||
unsets user defined handler for load local infile command */
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
PHP_FUNCTION(mysqli_set_local_infile_default)
|
||||
{
|
||||
MY_MYSQL *mysql;
|
||||
|
@ -1529,7 +1529,7 @@ PHP_FUNCTION(mysqli_prepare)
|
|||
}
|
||||
MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
|
||||
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
if (mysql->mysql->status == MYSQL_STATUS_GET_RESULT) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "All data must be fetched before a new statement prepare takes place");
|
||||
RETURN_FALSE;
|
||||
|
@ -1541,7 +1541,7 @@ PHP_FUNCTION(mysqli_prepare)
|
|||
if ((stmt->stmt = mysql_stmt_init(mysql->mysql))) {
|
||||
if (mysql_stmt_prepare(stmt->stmt, query, query_len)) {
|
||||
/* mysql_stmt_close() clears errors, so we have to store them temporarily */
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
char last_error[MYSQL_ERRMSG_SIZE];
|
||||
char sqlstate[SQLSTATE_LENGTH+1];
|
||||
unsigned int last_errno;
|
||||
|
@ -1556,7 +1556,7 @@ PHP_FUNCTION(mysqli_prepare)
|
|||
stmt->stmt = NULL;
|
||||
|
||||
/* restore error messages */
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
mysql->mysql->net.last_errno = last_errno;
|
||||
memcpy(mysql->mysql->net.last_error, last_error, MYSQL_ERRMSG_SIZE);
|
||||
memcpy(mysql->mysql->net.sqlstate, sqlstate, SQLSTATE_LENGTH+1);
|
||||
|
@ -1905,7 +1905,7 @@ PHP_FUNCTION(mysqli_sqlstate)
|
|||
|
||||
/* {{{ proto bool mysqli_ssl_set(object link ,string key ,string cert ,string ca ,string capath ,string cipher]) U
|
||||
*/
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
PHP_FUNCTION(mysqli_ssl_set)
|
||||
{
|
||||
MY_MYSQL *mysql;
|
||||
|
@ -1938,7 +1938,7 @@ PHP_FUNCTION(mysqli_stat)
|
|||
MY_MYSQL *mysql;
|
||||
zval *mysql_link;
|
||||
char *stat;
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQLI_USE_MYSQLND)
|
||||
uint stat_len;
|
||||
#endif
|
||||
|
||||
|
@ -1947,7 +1947,7 @@ PHP_FUNCTION(mysqli_stat)
|
|||
}
|
||||
MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
|
||||
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
if ((stat = (char *)mysql_stat(mysql->mysql)))
|
||||
{
|
||||
RETURN_STRING(stat, 1);
|
||||
|
@ -1998,7 +1998,7 @@ PHP_FUNCTION(mysqli_stmt_attr_get)
|
|||
{
|
||||
MY_STMT *stmt;
|
||||
zval *mysql_stmt;
|
||||
#if !defined(HAVE_MYSQLND) && MYSQL_VERSION_ID > 50099
|
||||
#if !defined(MYSQLI_USE_MYSQLND) && MYSQL_VERSION_ID > 50099
|
||||
my_bool value;
|
||||
#else
|
||||
ulong value = 0;
|
||||
|
@ -2142,7 +2142,7 @@ PHP_FUNCTION(mysqli_stmt_store_result)
|
|||
}
|
||||
MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
|
||||
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
{
|
||||
/*
|
||||
If the user wants to store the data and we have BLOBs/TEXTs we try to allocate
|
||||
|
|
|
@ -75,7 +75,7 @@ const zend_function_entry mysqli_functions[] = {
|
|||
PHP_FE(mysqli_fetch_fields, NULL)
|
||||
PHP_FE(mysqli_fetch_field_direct, NULL)
|
||||
PHP_FE(mysqli_fetch_lengths, NULL)
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQLI_USE_MYSQLND
|
||||
PHP_FE(mysqli_fetch_all, NULL)
|
||||
#endif
|
||||
PHP_FE(mysqli_fetch_array, NULL)
|
||||
|
@ -86,7 +86,7 @@ const zend_function_entry mysqli_functions[] = {
|
|||
PHP_FE(mysqli_field_seek, NULL)
|
||||
PHP_FE(mysqli_field_tell, NULL)
|
||||
PHP_FE(mysqli_free_result, NULL)
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQLI_USE_MYSQLND)
|
||||
PHP_FE(mysqli_get_cache_stats, NULL)
|
||||
PHP_FE(mysqli_get_connection_stats, NULL)
|
||||
PHP_FE(mysqli_get_client_stats, NULL)
|
||||
|
@ -105,7 +105,7 @@ const zend_function_entry mysqli_functions[] = {
|
|||
PHP_FE(mysqli_info, NULL)
|
||||
PHP_FE(mysqli_insert_id, NULL)
|
||||
PHP_FE(mysqli_kill, NULL)
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
PHP_FE(mysqli_set_local_infile_default, NULL)
|
||||
PHP_FE(mysqli_set_local_infile_handler, NULL)
|
||||
#endif
|
||||
|
@ -138,7 +138,7 @@ const zend_function_entry mysqli_functions[] = {
|
|||
PHP_FE(mysqli_stmt_bind_result, second_arg_force_by_ref_rest)
|
||||
PHP_FE(mysqli_stmt_fetch, NULL)
|
||||
PHP_FE(mysqli_stmt_free_result, NULL)
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQLI_USE_MYSQLND)
|
||||
PHP_FE(mysqli_stmt_get_result, NULL)
|
||||
#endif
|
||||
PHP_FE(mysqli_stmt_get_warnings, NULL)
|
||||
|
@ -146,7 +146,7 @@ const zend_function_entry mysqli_functions[] = {
|
|||
PHP_FE(mysqli_stmt_reset, NULL)
|
||||
PHP_FE(mysqli_stmt_param_count, NULL)
|
||||
PHP_FE(mysqli_sqlstate, NULL)
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
PHP_FE(mysqli_ssl_set, NULL)
|
||||
#endif
|
||||
PHP_FE(mysqli_stat, NULL)
|
||||
|
@ -197,14 +197,14 @@ const zend_function_entry mysqli_link_methods[] = {
|
|||
PHP_FALIAS(get_charset,mysqli_get_charset,NULL)
|
||||
#endif
|
||||
PHP_FALIAS(get_client_info,mysqli_get_client_info,NULL)
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQLI_USE_MYSQLND)
|
||||
PHP_FALIAS(get_connection_stats,mysqli_get_connection_stats,NULL)
|
||||
#endif
|
||||
PHP_FALIAS(get_server_info,mysqli_get_server_info,NULL)
|
||||
PHP_FALIAS(get_warnings, mysqli_get_warnings, NULL)
|
||||
PHP_FALIAS(init,mysqli_init,NULL)
|
||||
PHP_FALIAS(kill,mysqli_kill,NULL)
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
PHP_FALIAS(set_local_infile_default,mysqli_set_local_infile_default,NULL)
|
||||
PHP_FALIAS(set_local_infile_handler,mysqli_set_local_infile_handler,NULL)
|
||||
#endif
|
||||
|
@ -226,7 +226,7 @@ const zend_function_entry mysqli_link_methods[] = {
|
|||
PHP_FALIAS(set_charset,mysqli_set_charset,NULL)
|
||||
#endif
|
||||
PHP_FALIAS(set_opt, mysqli_options,NULL)
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
PHP_FALIAS(ssl_set,mysqli_ssl_set,NULL)
|
||||
#endif
|
||||
PHP_FALIAS(stat,mysqli_stat,NULL)
|
||||
|
@ -250,7 +250,7 @@ const zend_function_entry mysqli_result_methods[] = {
|
|||
PHP_FALIAS(fetch_field,mysqli_fetch_field,NULL)
|
||||
PHP_FALIAS(fetch_fields,mysqli_fetch_fields,NULL)
|
||||
PHP_FALIAS(fetch_field_direct,mysqli_fetch_field_direct,NULL)
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQLI_USE_MYSQLND)
|
||||
PHP_FALIAS(fetch_all,mysqli_fetch_all,NULL)
|
||||
#endif
|
||||
PHP_FALIAS(fetch_array,mysqli_fetch_array,NULL)
|
||||
|
@ -286,7 +286,7 @@ const zend_function_entry mysqli_stmt_methods[] = {
|
|||
PHP_FALIAS(reset,mysqli_stmt_reset,NULL)
|
||||
PHP_FALIAS(prepare,mysqli_stmt_prepare, NULL)
|
||||
PHP_FALIAS(store_result,mysqli_stmt_store_result,NULL)
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQLI_USE_MYSQLND)
|
||||
PHP_FALIAS(get_result,mysqli_stmt_get_result,NULL)
|
||||
#endif
|
||||
{NULL, NULL, NULL}
|
||||
|
|
|
@ -151,13 +151,13 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne
|
|||
#else
|
||||
if (!mysql_ping(mysql->mysql)) {
|
||||
#endif
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQLI_USE_MYSQLND
|
||||
mysqlnd_restart_psession(mysql->mysql);
|
||||
#endif
|
||||
MyG(num_active_persistent)++;
|
||||
goto end;
|
||||
} else {
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQLI_USE_MYSQLND)
|
||||
mysqlnd_end_psession(mysql->mysql);
|
||||
#endif
|
||||
mysqli_close(mysql->mysql, MYSQLI_CLOSE_IMPLICIT);
|
||||
|
@ -189,7 +189,7 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne
|
|||
goto err;
|
||||
}
|
||||
if (!is_real_connect && !mysql->mysql) {
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
if (!(mysql->mysql = mysql_init(NULL))) {
|
||||
#else
|
||||
if (!(mysql->mysql = mysqlnd_init(persistent))) {
|
||||
|
@ -208,7 +208,7 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne
|
|||
}
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
if (mysql_real_connect(mysql->mysql, hostname, username, passwd, dbname, port, socket, CLIENT_MULTI_RESULTS) == NULL)
|
||||
#else
|
||||
if (mysqlnd_connect(mysql->mysql, hostname, username, passwd, passwd_len, dbname, dbname_len,
|
||||
|
@ -229,7 +229,7 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne
|
|||
/* clear error */
|
||||
php_mysqli_set_error(mysql_errno(mysql->mysql), (char *) mysql_error(mysql->mysql) TSRMLS_CC);
|
||||
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
mysql->mysql->reconnect = MyG(reconnect);
|
||||
|
||||
/* set our own local_infile handler */
|
||||
|
@ -252,7 +252,7 @@ end:
|
|||
|
||||
MyG(num_links)++;
|
||||
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
mysql->multi_query = 0;
|
||||
#else
|
||||
mysql->multi_query = 1;
|
||||
|
@ -324,7 +324,7 @@ PHP_FUNCTION(mysqli_connect_error)
|
|||
Fetch a result row as an associative array, a numeric array, or both */
|
||||
PHP_FUNCTION(mysqli_fetch_array)
|
||||
{
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0, 0);
|
||||
#else
|
||||
MYSQL_RES *result;
|
||||
|
@ -350,7 +350,7 @@ PHP_FUNCTION(mysqli_fetch_array)
|
|||
Fetch a result row as an associative array */
|
||||
PHP_FUNCTION(mysqli_fetch_assoc)
|
||||
{
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAM_PASSTHRU, MYSQLI_ASSOC, 0);
|
||||
#else
|
||||
MYSQL_RES *result;
|
||||
|
@ -369,7 +369,7 @@ PHP_FUNCTION(mysqli_fetch_assoc)
|
|||
|
||||
/* {{{ proto mixed mysqli_fetch_all (object result [,int resulttype])
|
||||
Fetches all result rows as an associative array, a numeric array, or both */
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQLI_USE_MYSQLND)
|
||||
PHP_FUNCTION(mysqli_fetch_all)
|
||||
{
|
||||
MYSQL_RES *result;
|
||||
|
@ -460,7 +460,7 @@ PHP_FUNCTION(mysqli_multi_query)
|
|||
|
||||
MYSQLI_ENABLE_MQ;
|
||||
if (mysql_real_query(mysql->mysql, query, query_len)) {
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQLI_USE_MYSQLND
|
||||
char s_error[MYSQL_ERRMSG_SIZE], s_sqlstate[SQLSTATE_LENGTH+1];
|
||||
unsigned int s_errno;
|
||||
/* we have to save error information, cause
|
||||
|
@ -474,7 +474,7 @@ PHP_FUNCTION(mysqli_multi_query)
|
|||
MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);
|
||||
MYSQLI_DISABLE_MQ;
|
||||
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQLI_USE_MYSQLND
|
||||
/* restore error information */
|
||||
strcpy(mysql->mysql->net.last_error, s_error);
|
||||
strcpy(mysql->mysql->net.sqlstate, s_sqlstate);
|
||||
|
@ -508,7 +508,7 @@ PHP_FUNCTION(mysqli_query)
|
|||
RETURN_FALSE;
|
||||
}
|
||||
if (resultmode != MYSQLI_USE_RESULT && resultmode != MYSQLI_STORE_RESULT
|
||||
#if defined(HAVE_MYSQLND) && defined(MYSQLND_THREADED)
|
||||
#if defined(MYSQLI_USE_MYSQLND) && defined(MYSQLND_THREADED)
|
||||
&& resultmode != MYSQLI_BG_STORE_RESULT
|
||||
#endif
|
||||
) {
|
||||
|
@ -541,7 +541,7 @@ PHP_FUNCTION(mysqli_query)
|
|||
case MYSQLI_USE_RESULT:
|
||||
result = mysql_use_result(mysql->mysql);
|
||||
break;
|
||||
#if defined(HAVE_MYSQLND) && defined(MYSQLND_THREADED)
|
||||
#if defined(MYSQLI_USE_MYSQLND) && defined(MYSQLND_THREADED)
|
||||
case MYSQLI_BG_STORE_RESULT:
|
||||
result = mysqli_bg_store_result(mysql->mysql);
|
||||
break;
|
||||
|
@ -566,7 +566,7 @@ PHP_FUNCTION(mysqli_query)
|
|||
/* }}} */
|
||||
|
||||
|
||||
#if defined(HAVE_MYSQLND)
|
||||
#if defined(MYSQLI_USE_MYSQLND)
|
||||
/* {{{ proto object mysqli_stmt_get_result(object link) U
|
||||
Buffer result set on client */
|
||||
PHP_FUNCTION(mysqli_stmt_get_result)
|
||||
|
@ -677,7 +677,7 @@ PHP_FUNCTION(mysqli_get_charset)
|
|||
zval *mysql_link;
|
||||
char *name = NULL, *collation = NULL, *dir = NULL;
|
||||
uint minlength, maxlength, number, state;
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
MY_CHARSET_INFO cs;
|
||||
#else
|
||||
const MYSQLND_CHARSET *cs;
|
||||
|
@ -690,7 +690,7 @@ PHP_FUNCTION(mysqli_get_charset)
|
|||
|
||||
object_init(return_value);
|
||||
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
mysql_get_character_set_info(mysql->mysql, &cs);
|
||||
name = (char *)cs.csname;
|
||||
collation = (char *)cs.name;
|
||||
|
|
|
@ -51,7 +51,7 @@ void php_clear_warnings(MYSQLI_WARNING *w)
|
|||
/* }}} */
|
||||
|
||||
|
||||
#ifndef HAVE_MYSQLND
|
||||
#ifndef MYSQLI_USE_MYSQLND
|
||||
/* {{{ MYSQLI_WARNING *php_new_warning */
|
||||
static
|
||||
MYSQLI_WARNING *php_new_warning(const char *reason, int errorno TSRMLS_DC)
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQLI_USE_MYSQLND
|
||||
#include "ext/mysqlnd/mysqlnd.h"
|
||||
#include "mysqli_mysqlnd.h"
|
||||
#else
|
||||
|
@ -127,7 +127,7 @@ typedef struct _mysqli_property_entry {
|
|||
int (*w_func)(mysqli_object *obj, zval *value TSRMLS_DC);
|
||||
} mysqli_property_entry;
|
||||
|
||||
#if !defined(HAVE_MYSQLND)
|
||||
#if !defined(MYSQLI_USE_MYSQLND)
|
||||
typedef struct {
|
||||
char error_msg[LOCAL_INFILE_ERROR_LEN];
|
||||
void *userdata;
|
||||
|
@ -176,7 +176,7 @@ extern const mysqli_property_entry mysqli_stmt_property_entries[];
|
|||
extern const mysqli_property_entry mysqli_driver_property_entries[];
|
||||
extern const mysqli_property_entry mysqli_warning_property_entries[];
|
||||
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQLI_USE_MYSQLND
|
||||
extern MYSQLND_ZVAL_PCACHE *mysqli_mysqlnd_zval_cache;
|
||||
extern MYSQLND_QCACHE *mysqli_mysqlnd_qcache;
|
||||
#endif
|
||||
|
@ -302,7 +302,7 @@ PHP_MYSQLI_EXPORT(zend_object_value) mysqli_objects_new(zend_class_entry * TSRML
|
|||
|
||||
#define MYSQLI_STORE_RESULT 0
|
||||
#define MYSQLI_USE_RESULT 1
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQLI_USE_MYSQLND
|
||||
#define MYSQLI_BG_STORE_RESULT 101
|
||||
#endif
|
||||
|
||||
|
@ -370,7 +370,7 @@ ZEND_BEGIN_MODULE_GLOBALS(mysqli)
|
|||
HashTable *report_ht;
|
||||
unsigned long multi_query;
|
||||
unsigned long embedded;
|
||||
#ifdef HAVE_MYSQLND
|
||||
#ifdef MYSQLI_USE_MYSQLND
|
||||
MYSQLND_THD_ZVAL_PCACHE *mysqlnd_thd_zval_cache;
|
||||
#endif
|
||||
ZEND_END_MODULE_GLOBALS(mysqli)
|
||||
|
|
|
@ -19,7 +19,6 @@ if test "$PHP_MYSQLND_ENABLED" = "yes"; then
|
|||
PHP_ADD_BUILD_DIR([ext/mysqlnd], 1)
|
||||
PHP_INSTALL_HEADERS([ext/mysqlnd])
|
||||
PHP_INSTALL_HEADERS([$ext_builddir/php_mysqlnd_config.h])
|
||||
AC_DEFINE([HAVE_MYSQLND], 1, [Whether mysqlnd is enabled])
|
||||
|
||||
dnl Windows uses config.w32 thus this code is safe for now
|
||||
if test "$PHP_MYSQLND_THREADING" = "yes"; then
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue