21#ifndef PHP_PDO_MYSQL_INT_H
22#define PHP_PDO_MYSQL_INT_H
27# define PDO_MYSQL_PARAM_BIND MYSQLND_PARAM_BIND
30#if MYSQL_VERSION_ID >= 80000 && MYSQL_VERSION_ID < 100000
33# define PDO_MYSQL_PARAM_BIND MYSQL_BIND
36#if defined(PDO_USE_MYSQLND) && PHP_DEBUG && !defined(PHP_WIN32)
37#define PDO_DBG_ENABLED 1
39#define PDO_DBG_INF(msg) do { if (!dbg_skip_trace) PDO_MYSQL_G(dbg)->m->log(PDO_MYSQL_G(dbg), __LINE__, __FILE__, -1, "info : ", (msg)); } while (0)
40#define PDO_DBG_ERR(msg) do { if (!dbg_skip_trace) PDO_MYSQL_G(dbg)->m->log(PDO_MYSQL_G(dbg), __LINE__, __FILE__, -1, "error: ", (msg)); } while (0)
41#define PDO_DBG_INF_FMT(...) do { if (!dbg_skip_trace) PDO_MYSQL_G(dbg)->m->log_va(PDO_MYSQL_G(dbg), __LINE__, __FILE__, -1, "info : ", __VA_ARGS__); } while (0)
42#define PDO_DBG_ERR_FMT(...) do { if (!dbg_skip_trace) PDO_MYSQL_G(dbg)->m->log_va(PDO_MYSQL_G(dbg), __LINE__, __FILE__, -1, "error: ", __VA_ARGS__); } while (0)
43#define PDO_DBG_ENTER(func_name) \
44 bool dbg_skip_trace = true; \
45 ((void) dbg_skip_trace); \
46 if (PDO_MYSQL_G(dbg)) \
47 dbg_skip_trace = !PDO_MYSQL_G(dbg)->m->func_enter(PDO_MYSQL_G(dbg), __LINE__, __FILE__, func_name, strlen(func_name));
49#define PDO_DBG_RETURN(value) do { if (PDO_MYSQL_G(dbg)) PDO_MYSQL_G(dbg)->m->func_leave(PDO_MYSQL_G(dbg), __LINE__, __FILE__, 0); return (value); } while (0)
50#define PDO_DBG_VOID_RETURN do { if (PDO_MYSQL_G(dbg)) PDO_MYSQL_G(dbg)->m->func_leave(PDO_MYSQL_G(dbg), __LINE__, __FILE__, 0); return; } while (0)
53#define PDO_DBG_ENABLED 0
55static inline void PDO_DBG_INF(
char *
msg) {}
56static inline void PDO_DBG_ERR(
char *
msg) {}
57static inline void PDO_DBG_INF_FMT(
char *format, ...) {}
58static inline void PDO_DBG_ERR_FMT(
char *format, ...) {}
59static inline void PDO_DBG_ENTER(
char *
func_name) {}
60#define PDO_DBG_RETURN(value) return (value)
61#define PDO_DBG_VOID_RETURN return;
77#if defined(PHP_WIN32) && !PDO_DBG_ENABLED
86#define PDO_MYSQL_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(pdo_mysql, v)
88#if defined(ZTS) && defined(COMPILE_DL_PDO_MYSQL)
110#ifndef PDO_USE_MYSQLND
126#ifdef PDO_USE_MYSQLND
133#ifndef PDO_USE_MYSQLND
155#define pdo_mysql_error(s) _pdo_mysql_error(s, NULL, __FILE__, __LINE__)
156#define pdo_mysql_error_stmt(s) _pdo_mysql_error(stmt->dbh, stmt, __FILE__, __LINE__)
164#ifndef PDO_USE_MYSQLND
178#if MYSQL_VERSION_ID > 50605 || defined(PDO_USE_MYSQLND)
179 PDO_MYSQL_ATTR_SERVER_PUBLIC_KEY,
182#ifdef PDO_USE_MYSQLND
183 PDO_MYSQL_ATTR_SSL_VERIFY_SERVER_CERT,
185#if MYSQL_VERSION_ID >= 80021 || defined(PDO_USE_MYSQLND)
186 PDO_MYSQL_ATTR_LOCAL_INFILE_DIRECTORY,
file(string $filename, int $flags=0, $context=null)
const pdo_driver_t pdo_mysql_driver
const struct pdo_stmt_methods mysql_stmt_methods
struct st_mysqlnd_debug MYSQLND_DEBUG
struct st_mysqlnd_stmt MYSQLND_STMT
struct _pdo_dbh_t pdo_dbh_t
struct _pdo_stmt_t pdo_stmt_t
struct _pdo_scanner_t pdo_scanner_t
@ PDO_ATTR_DRIVER_SPECIFIC
int _pdo_mysql_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, const char *file, int line)
int pdo_mysql_scanner(pdo_scanner_t *s)
#define PDO_MYSQL_PARAM_BIND
@ PDO_MYSQL_ATTR_SSL_CIPHER
@ PDO_MYSQL_ATTR_READ_DEFAULT_FILE
@ PDO_MYSQL_ATTR_SSL_CERT
@ PDO_MYSQL_ATTR_FOUND_ROWS
@ PDO_MYSQL_ATTR_DIRECT_QUERY
@ PDO_MYSQL_ATTR_MAX_BUFFER_SIZE
@ PDO_MYSQL_ATTR_READ_DEFAULT_GROUP
@ PDO_MYSQL_ATTR_COMPRESS
@ PDO_MYSQL_ATTR_LOCAL_INFILE
@ PDO_MYSQL_ATTR_USE_BUFFERED_QUERY
@ PDO_MYSQL_ATTR_IGNORE_SPACE
@ PDO_MYSQL_ATTR_INIT_COMMAND
@ PDO_MYSQL_ATTR_SSL_CAPATH
@ PDO_MYSQL_ATTR_MULTI_STATEMENTS
unsigned fetch_table_names
zend_ulong max_buffer_size
pdo_mysql_error_info einfo
unsigned assume_national_character_set_strings
PDO_MYSQL_PARAM_BIND * bound_result
unsigned long * current_lengths
pdo_mysql_error_info einfo
const MYSQL_FIELD * fields
PDO_MYSQL_PARAM_BIND * params
#define ZEND_TSRMLS_CACHE_EXTERN()
#define ZEND_END_MODULE_GLOBALS(module_name)
#define ZEND_EXTERN_MODULE_GLOBALS(module_name)
#define ZEND_BEGIN_MODULE_GLOBALS(module_name)