if test "$PHP_MYSQL" = "mysqlnd"; then
PHP_ADD_EXTENSION_DEP(mysql, mysqlnd)
+ AC_DEFINE([MYSQL_USE_MYSQLND], 1, [Whether mysqlnd is enabled])
fi
fi
WARNING("mysql not enabled; libraries and headers not found");
}
} else {
- AC_DEFINE('HAVE_MYSQLND', 1, 'MySQL native driver support enabled');
+ AC_DEFINE('MYSQLI_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');
#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
# endif
#endif
-#if MYSQL_VERSION_ID >= 32032 || defined(HAVE_MYSQLND)
+#if MYSQL_VERSION_ID >= 32032 || defined(MYSQL_USE_MYSQLND)
#define HAVE_GETINFO_FUNCS
#endif
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
/* 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}
#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) { \
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()
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
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;
*/
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();
*/
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;
}
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
*/
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
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
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;
MYSQL_DO_CONNECT_CLEANUP(); \
RETURN_FALSE;
-#ifdef HAVE_MYSQLND
+#ifdef MYSQL_USE_MYSQLND
#define MYSQL_PORT 0
#endif
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);
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,
}
mysql_options(mysql->conn, MYSQL_OPT_LOCAL_INFILE, (char *)&MySG(allow_local_infile));
-#if !defined(HAVE_MYSQLND)
+#if !defined(MYSQL_USE_MYSQLND)
if (UG(unicode)) {
#ifdef MYSQL_HAS_SET_CHARSET
mysql_set_character_set(mysql->conn, "utf8");
if (UG(unicode)) {
mysql_options(mysql->conn, MYSQL_SET_CHARSET_NAME, "utf8");
}
-#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,
efree(hashed_details);
MYSQL_DO_CONNECT_RETURN_FALSE();
}
-#if !defined(HAVE_MYSQLND)
+#if !defined(MYSQL_USE_MYSQLND)
if (UG(unicode)) {
#ifdef MYSQL_HAS_SET_CHARSET
mysql_set_character_set(mysql->conn, "utf8");
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
}
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);
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,
#endif
efree(hashed_details);
/* free mysql structure */
-#ifdef HAVE_MYSQLND
+#ifdef MYSQL_USE_MYSQLND
mysqli_close(mysql->conn, MYSQLI_CLOSE_DISCONNECTED);
#endif
efree(mysql);
MYSQL_DO_CONNECT_RETURN_FALSE();
}
-#if !defined(HAVE_MYSQLND)
+#if !defined(MYSQL_USE_MYSQLND)
if (UG(unicode)) {
#ifdef MYSQL_HAS_SET_CHARSET
mysql_set_character_set(mysql->conn, "utf8");
int id = -1;
php_mysql_conn *mysql;
char *stat;
-#ifdef HAVE_MYSQLND
+#ifdef MYSQL_USE_MYSQLND
uint stat_len;
#endif
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_UTF8_STRING(stat, ZSTR_DUPLICATE);
#else
PHPMY_UNBUFFERED_QUERY_CHECK();
MYSQL_DISABLE_MQ;
-#ifndef HAVE_MYSQLND
+#ifndef MYSQL_USE_MYSQLND
/* check explain */
if (MySG(trace_mode)) {
if (!strncasecmp("select", query, 6)){
{
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
}
}
-#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;
#define MYSQL_BINARY_CHARSET_NR 63
-#if MYSQL_VERSION_ID > 50002 || defined(HAVE_MYSQLND)
+#if MYSQL_VERSION_ID > 50002 || defined(MYSQL_USE_MYSQLND)
/* we have BIT */
#define IS_BINARY_DATA(f) (((f)->type == MYSQL_TYPE_TINY_BLOB || (f)->type == MYSQL_TYPE_BLOB || \
(f)->type == MYSQL_TYPE_MEDIUM_BLOB || (f)->type == MYSQL_TYPE_LONG_BLOB || \
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;
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;
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;
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;
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;
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
#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
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;
if test "$PHP_MYSQLI" = "mysqlnd"; then
PHP_ADD_EXTENSION_DEP(mysqli, mysqlnd)
+ AC_DEFINE([MYSQLI_USE_MYSQLND], 1, [Whether mysqlnd is enabled])
fi
fi
}
} 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);
}
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
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);
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)
{
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 */
#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}
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()
#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
REGISTER_INI_ENTRIES();
-#ifndef HAVE_MYSQLND
+#ifndef MYSQLI_USE_MYSQLND
#if MYSQL_VERSION_ID >= 40000
if (mysql_server_init(0, NULL, NULL)) {
return FAILURE;
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_NUMERIC_AND_DATETIME_AS_UNICODE", MYSQLND_OPT_NUMERIC_AND_DATETIME_AS_UNICODE, CONST_CS | CONST_PERSISTENT);
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);
/* 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
/* 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);
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
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
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
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
*/
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();
*/
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
*/
PHP_RSHUTDOWN_FUNCTION(mysqli)
{
-#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;
*/
PHP_MINFO_FUNCTION(mysqli)
{
-#if defined(HAVE_MYSQLND)
+#if defined(MYSQLI_USE_MYSQLND)
char buf[32];
#endif
php_info_print_table_start();
php_info_print_table_header(2, "MysqlI Support", "enabled");
php_info_print_table_row(2, "Client API library version", mysql_get_client_info());
-#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
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;
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;
RETURN_FALSE;
}
-#if !defined(HAVE_MYSQLND)
+#if !defined(MYSQLI_USE_MYSQLND)
if (!(row = mysql_fetch_row(result))) {
RETURN_NULL();
}
}
/* }}} */
-#if !defined(HAVE_MYSQLND)
+#if !defined(MYSQLI_USE_MYSQLND)
#define ALLOC_CALLBACK_ARGS(a, b, c)\
/* }}} */
/* {{{ 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)
/* }}} */
/* {{{ mysqli_stmt_bind_result_do_bind */
-#ifndef HAVE_MYSQLND
+#ifndef MYSQLI_USE_MYSQLND
/* TODO:
do_alloca, free_alloca
*/
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;
{
MY_STMT *stmt;
zval *mysql_stmt;
-#ifndef HAVE_MYSQLND
+#ifndef MYSQLI_USE_MYSQLND
unsigned int i;
#endif
}
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)) ) {
php_mysqli_report_index(stmt->query, mysqli_stmt_server_status(stmt->stmt) TSRMLS_CC);
}
-#ifndef HAVE_MYSQLND
+#ifndef MYSQLI_USE_MYSQLND
/* free converted utf8 strings */
if (UG(unicode)) {
for (i = 0; i < stmt->param.var_cnt; i++) {
-#if !defined(HAVE_MYSQLND)
+#if !defined(MYSQLI_USE_MYSQLND)
#define MYSQL_BINARY_CHARSET_NR 63
#if MYSQL_VERSION_ID > 50002
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);
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;
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
/*
/* {{{ proto void mysqli_set_local_infile_default(object link) U
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;
}
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;
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;
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);
/* {{{ 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;
MY_MYSQL *mysql;
zval *mysql_link;
char *stat;
-#if defined(HAVE_MYSQLND)
+#if defined(MYSQLI_USE_MYSQLND)
uint stat_len;
#endif
}
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_UTF8_STRING(stat, ZSTR_DUPLICATE);
{
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;
}
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
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)
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)
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
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)
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)
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
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)
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)
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}
#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);
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))) {
}
#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,
/* 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 */
MyG(num_links)++;
-#if !defined(HAVE_MYSQLND)
+#if !defined(MYSQLI_USE_MYSQLND)
mysql->multi_query = 0;
#else
mysql->multi_query = 1;
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;
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;
/* {{{ proto mixed mysqli_fetch_all (object result [,int resulttype]) U
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;
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
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);
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
) {
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;
/* }}} */
-#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)
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;
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;
/* }}} */
-#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)
#define FALSE 0
#endif
-#ifdef HAVE_MYSQLND
+#ifdef MYSQLI_USE_MYSQLND
#include "ext/mysqlnd/mysqlnd.h"
#include "mysqli_mysqlnd.h"
#else
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;
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
#define MYSQLI_STORE_RESULT 0
#define MYSQLI_USE_RESULT 1
-#ifdef HAVE_MYSQLND
+#ifdef MYSQLI_USE_MYSQLND
#ifdef MYSQLND_THREADED
#define MYSQLI_BG_STORE_RESULT 101
#endif
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)
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