REGISTER_LONG_CONSTANT("MYSQLI_NUM_FLAG", NUM_FLAG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_PART_KEY_FLAG", PART_KEY_FLAG, CONST_CS | CONST_PERSISTENT);
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);
+ REGISTER_LONG_CONSTANT("MYSQLI_NO_DEFAULT_VALUE_FLAG", NO_DEFAULT_VALUE_FLAG, CONST_CS | CONST_PERSISTENT);
+
+#if (MYSQL_VERSION_ID > 51122 && MYSQL_VERSION_ID < 60000) || (MYSQLI_VERSION_ID > 60003) || defined(HAVE_MYSQLND)
+ REGISTER_LONG_CONSTANT("MYSQLI_ON_UPDATE_NOW_FLAG", ON_UPDATE_NOW_FLAG, CONST_CS | CONST_PERSISTENT);
+#endif
REGISTER_LONG_CONSTANT("MYSQLI_TYPE_DECIMAL", FIELD_TYPE_DECIMAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_TYPE_TINY", FIELD_TYPE_TINY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_REPORT_ALL", MYSQLI_REPORT_ALL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_REPORT_OFF", 0, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("MYSQLI_DEBUG_TRACE_ENABLED",
+#ifdef HAVE_MYSQLND
+ MYSQLND_DBG_ENABLED
+#else
+#ifndef DBUG_OFF
+ 0
+#else
+ 1
+#endif
+#endif
+ , CONST_CS | CONST_PERSISTENT);
+
return SUCCESS;
}
/* }}} */
#define MYSQLND_DO_WIRE_CHECK_BEFORE_COMMAND 1
#endif
+#if PHP_DEBUG && !defined(PHP_WIN32)
+#define MYSQLND_DBG_ENABLED 1
+#else
+#define MYSQLND_DBG_ENABLED 0
+#endif
+
#ifdef ZTS
#include "TSRM.h"
#endif
}
i = j;
} else {
- self->file_name = (char *) mysqlnd_debug_default_trace_file;
+ if (!self->file_name)
+ self->file_name = (char *) mysqlnd_debug_default_trace_file;
}
state = PARSER_WAIT_COLON;
break;
if ((i + 1) < mode_len && mode[i+1] == ',') {
i+= 2;
while (i < mode_len) {
- if (mode[i++] == ':') {
+ if (mode[i] == ':') {
break;
}
+ i++;
}
}
state = PARSER_WAIT_COLON;
char * mysqlnd_get_backtrace(TSRMLS_D);
-#if PHP_DEBUG && !defined(PHP_WIN32)
+#if MYSQLND_DBG_ENABLED == 1
+
#define DBG_INF(msg) do { if (dbg_skip_trace == FALSE) MYSQLND_G(dbg)->m->log(MYSQLND_G(dbg), __LINE__, __FILE__, -1, "info : ", (msg)); } while (0)
#define DBG_ERR(msg) do { if (dbg_skip_trace == FALSE) MYSQLND_G(dbg)->m->log(MYSQLND_G(dbg), __LINE__, __FILE__, -1, "error: ", (msg)); } while (0)
#define DBG_INF_FMT(...) do { if (dbg_skip_trace == FALSE) MYSQLND_G(dbg)->m->log_va(MYSQLND_G(dbg), __LINE__, __FILE__, -1, "info : ", __VA_ARGS__); } while (0)
-#else
+#elif MYSQLND_DBG_ENABLED == 0
+
+
static inline void DBG_INF(char *msg) {}
static inline void DBG_ERR(char *msg) {}
static inline void DBG_INF_FMT(char *format, ...) {}
#define TIMESTAMP_FLAG 1024
#define SET_FLAG 2048
#define NO_DEFAULT_VALUE_FLAG 4096
+#define ON_UPDATE_NOW_FLAG 8192
#define PART_KEY_FLAG 16384
#define GROUP_FLAG 32768
#define NUM_FLAG 32768
unsigned long client_flag;
unsigned long server_capabilities;
- int tmp_int;
-
-
/* For UPSERT queries */
mysqlnd_upsert_status upsert_status;
char *last_message;