]> git.pld-linux.org Git - packages/php.git/blob - php-pdo_mysql-charsetphpini.patch
- make it possible to coinstall phpXY-pdo-pgsql
[packages/php.git] / php-pdo_mysql-charsetphpini.patch
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.030056 seconds and 3 git commands to generate.