]> git.pld-linux.org Git - packages/php.git/blame - php-pdo_mysql-charsetphpini.patch
- make it possible to coinstall phpXY-pdo-pgsql
[packages/php.git] / php-pdo_mysql-charsetphpini.patch
CommitLineData
5624399c
ER
1--- ext/pdo_mysql/mysql_driver.c 2006-12-02 17:26:53.000000000 +0100
2+++ ext/pdo_mysql/mysql_driver.c 2006-12-02 17:27:12.000000000 +0100
3@@ -436,6 +436,7 @@
4 pdo_mysql_db_handle *H;
5 int i, ret = 0;
6 char *host = NULL, *unix_socket = NULL;
7+ char *connect_charset = NULL;
8 unsigned int port = 3306;
9 char *dbname;
10 struct pdo_data_src_parser vars[] = {
11@@ -546,6 +547,13 @@
12 if (vars[2].optval && !strcmp("localhost", vars[2].optval)) {
13 unix_socket = vars[4].optval;
14 }
15+
16+ connect_charset = PDOMYSQLG(connect_charset);
17+
18+ if (connect_charset != NULL) {
19+ mysql_options(H->server, MYSQL_SET_CHARSET_NAME, connect_charset);
20+ }
21+
22 if (mysql_real_connect(H->server, host, dbh->username, dbh->password, dbname, port, unix_socket, connect_opts) == NULL) {
23 pdo_mysql_error(dbh);
24 goto cleanup;
25--- ext/pdo_mysql/pdo_mysql.c 2006-12-02 17:26:53.000000000 +0100
26+++ ext/pdo_mysql/pdo_mysql.c 2006-12-02 17:27:12.000000000 +0100
27@@ -30,6 +30,9 @@
28 #include "php_pdo_mysql.h"
29 #include "php_pdo_mysql_int.h"
30
31+ZEND_DECLARE_MODULE_GLOBALS(pdo_mysql)
32+static PHP_GINIT_FUNCTION(pdo_mysql);
33+
34 /* {{{ pdo_mysql_functions[] */
35 zend_function_entry pdo_mysql_functions[] = {
36 {NULL, NULL, NULL}
37@@ -61,7 +64,11 @@
38 NULL,
39 PHP_MINFO(pdo_mysql),
40 "1.0.2",
41- STANDARD_MODULE_PROPERTIES
42+ PHP_MODULE_GLOBALS(pdo_mysql),
43+ PHP_GINIT(pdo_mysql),
44+ NULL,
45+ NULL,
46+ STANDARD_MODULE_PROPERTIES_EX
47 };
48 /* }}} */
49
50@@ -69,12 +76,23 @@
51 ZEND_GET_MODULE(pdo_mysql)
52 #endif
53
54+PHP_INI_BEGIN()
55+ STD_PHP_INI_ENTRY("pdo_mysql.connect_charset", NULL, PHP_INI_ALL, OnUpdateString, connect_charset, zend_pdo_mysql_globals, pdo_mysql_globals)
56+PHP_INI_END()
57+
58+static PHP_GINIT_FUNCTION(pdo_mysql)
59+{
60+ pdo_mysql_globals->connect_charset = NULL;
61+}
62+
63 /* true global environment */
64
65 /* {{{ PHP_MINIT_FUNCTION
66 */
67 PHP_MINIT_FUNCTION(pdo_mysql)
68 {
69+ REGISTER_INI_ENTRIES();
70+
71 REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_USE_BUFFERED_QUERY", (long)PDO_MYSQL_ATTR_USE_BUFFERED_QUERY);
72 REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_LOCAL_INFILE", (long)PDO_MYSQL_ATTR_LOCAL_INFILE);
73 REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_INIT_COMMAND", (long)PDO_MYSQL_ATTR_INIT_COMMAND);
74@@ -91,6 +109,7 @@
75 */
76 PHP_MSHUTDOWN_FUNCTION(pdo_mysql)
77 {
78+ UNREGISTER_INI_ENTRIES();
79 php_pdo_unregister_driver(&pdo_mysql_driver);
80 return SUCCESS;
81 }
82@@ -103,6 +122,8 @@
83 php_info_print_table_start();
84 php_info_print_table_header(2, "PDO Driver for MySQL, client library version", mysql_get_client_info());
85 php_info_print_table_end();
86+
87+ DISPLAY_INI_ENTRIES();
88 }
89 /* }}} */
90
91--- ext/pdo_mysql/php_pdo_mysql.h 2006-12-02 17:26:53.000000000 +0100
92+++ ext/pdo_mysql/php_pdo_mysql.h 2006-12-02 17:28:49.000000000 +0100
93@@ -40,6 +40,18 @@
94 PHP_RSHUTDOWN_FUNCTION(pdo_mysql);
95 PHP_MINFO_FUNCTION(pdo_mysql);
96
97+ZEND_BEGIN_MODULE_GLOBALS(pdo_mysql)
98+ char *connect_charset;
99+ZEND_END_MODULE_GLOBALS(pdo_mysql)
100+
101+#ifdef ZTS
102+# define PDOMYSQLG(v) TSRMG(pdo_mysql_globals_id, zend_pdo_mysql_globals *, v)
103+#else
104+# define PDOMYSQLG(v) (pdo_mysql_globals.v)
105+#endif
106+
107+ZEND_EXTERN_MODULE_GLOBALS(pdo_mysql)
108+
109 #endif /* PHP_PDO_MYSQL_H */
110
111
This page took 0.049713 seconds and 4 git commands to generate.