2
2
+----------------------------------------------------------------------+
4
4
+----------------------------------------------------------------------+
5
| Copyright (c) 1997-2009 The PHP Group |
5
| Copyright (c) 1997-2010 The PHP Group |
6
6
+----------------------------------------------------------------------+
7
7
| This source file is subject to version 3.01 of the PHP license, |
8
8
| that is bundled with this package in the file LICENSE, and is |
35
35
ZEND_GET_MODULE(pdo_mysql)
39
38
ZEND_DECLARE_MODULE_GLOBALS(pdo_mysql);
42
41
# ifndef PDO_MYSQL_UNIX_ADDR
43
# define PDO_MYSQL_UNIX_ADDR "/tmp/mysql.sock"
42
# ifdef PHP_MYSQL_UNIX_SOCK_ADDR
43
# define PDO_MYSQL_UNIX_ADDR PHP_MYSQL_UNIX_SOCK_ADDR
45
# define PDO_MYSQL_UNIX_ADDR "/tmp/mysql.sock"
48
50
/* {{{ PHP_INI_BEGIN
52
STD_PHP_INI_ENTRY("pdo_mysql.default_socket", PDO_MYSQL_UNIX_ADDR, PHP_INI_SYSTEM, OnUpdateString, default_socket, zend_pdo_mysql_globals, pdo_mysql_globals)
54
STD_PHP_INI_ENTRY("pdo_mysql.default_socket", PDO_MYSQL_UNIX_ADDR, PHP_INI_SYSTEM, OnUpdateStringUnempty, default_socket, zend_pdo_mysql_globals, pdo_mysql_globals)
54
56
#if PDO_DBG_ENABLED
55
57
STD_PHP_INI_ENTRY("pdo_mysql.debug", NULL, PHP_INI_SYSTEM, OnUpdateString, debug, zend_pdo_mysql_globals, pdo_mysql_globals)
57
STD_PHP_INI_ENTRY("pdo_mysql.cache_size", "2000", PHP_INI_SYSTEM, OnUpdateLong, cache_size, zend_pdo_mysql_globals, pdo_mysql_globals)
62
/* true global environment */
63
#ifdef PDO_USE_MYSQLND
64
static MYSQLND_ZVAL_PCACHE *pdo_mysqlnd_zval_cache;
62
/* true global environment */
68
64
/* {{{ PHP_MINIT_FUNCTION
70
66
static PHP_MINIT_FUNCTION(pdo_mysql)
73
68
REGISTER_INI_ENTRIES();
76
70
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_USE_BUFFERED_QUERY", (long)PDO_MYSQL_ATTR_USE_BUFFERED_QUERY);
77
71
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_LOCAL_INFILE", (long)PDO_MYSQL_ATTR_LOCAL_INFILE);
86
80
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_FOUND_ROWS", (long)PDO_MYSQL_ATTR_FOUND_ROWS);
87
81
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_IGNORE_SPACE", (long)PDO_MYSQL_ATTR_IGNORE_SPACE);
89
#ifdef PDO_USE_MYSQLND
90
pdo_mysqlnd_zval_cache = mysqlnd_palloc_init_cache(PDO_MYSQL_G(cache_size));
93
83
return php_pdo_register_driver(&pdo_mysql_driver);
117
106
php_info_print_table_header(2, "PDO Driver for MySQL", "enabled");
118
107
php_info_print_table_row(2, "Client API version", mysql_get_client_info());
120
#ifdef PDO_USE_MYSQLND
124
php_info_print_table_header(2, "Persistent cache", pdo_mysqlnd_zval_cache ? "enabled":"disabled");
126
if (pdo_mysqlnd_zval_cache) {
127
/* Now report cache status */
128
mysqlnd_palloc_stats(pdo_mysqlnd_zval_cache, &values);
129
mysqlnd_minfo_print_hash(&values);
134
109
php_info_print_table_end();
136
111
#ifdef PDO_USE_MYSQLND
144
119
/* {{{ PHP_RINIT_FUNCTION
146
121
static PHP_RINIT_FUNCTION(pdo_mysql)
148
PDO_MYSQL_G(mysqlnd_thd_zval_cache) = mysqlnd_palloc_rinit(pdo_mysqlnd_zval_cache);
150
123
#if PDO_DBG_ENABLED
151
124
if (PDO_MYSQL_G(debug)) {
152
MYSQLND_DEBUG *dbg = mysqlnd_debug_init(TSRMLS_C);
125
MYSQLND_DEBUG *dbg = mysqlnd_debug_init(mysqlnd_debug_std_no_trace_funcs TSRMLS_CC);