Author: uwendel
Date: 2008-04-23 11:35:08 +0200 (Wed, 23 Apr 2008)
New Revision: 1508
Modified:
trunk/php5/ext/pdo_mysqlnd/mysql_driver.c
trunk/php5/ext/pdo_mysqlnd/pdo_mysql.c
trunk/php5/ext/pdo_mysqlnd/php_pdo_mysql_int.h
Log:
We don't support all PDO/PDO_MYSQL attributes with mysqlnd.
Ignoring values for unsupported options will lead to confusion, indicating an error and
giving a warning is not really possible in the constructor (we should throw an exception)
and thus entirely
removing them from the API - like we did with MAX_BUFFER_SIZE before - seems a good
option. This way users get a FATAL error and can fix their PHP code properly.
Modified: trunk/php5/ext/pdo_mysqlnd/mysql_driver.c
===================================================================
--- trunk/php5/ext/pdo_mysqlnd/mysql_driver.c 2008-04-22 14:45:10 UTC (rev 1507)
+++ trunk/php5/ext/pdo_mysqlnd/mysql_driver.c 2008-04-23 09:35:08 UTC (rev 1508)
@@ -581,8 +581,9 @@
if (driver_options) {
long connect_timeout = pdo_attr_lval(driver_options, PDO_ATTR_TIMEOUT, 30 TSRMLS_CC);
long local_infile = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_LOCAL_INFILE, 0
TSRMLS_CC);
+#ifndef PDO_USE_MYSQLND
char *init_cmd = NULL, *default_file = NULL, *default_group = NULL;
-
+#endif
H->buffered = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_USE_BUFFERED_QUERY, 1
TSRMLS_CC);
H->emulate_prepare = pdo_attr_lval(driver_options,
@@ -616,7 +617,7 @@
mysql_options(H->server, MYSQL_OPT_RECONNECT, (const char*)&reconnect);
}
#endif
-
+#ifndef PDO_USE_MYSQLND
init_cmd = pdo_attr_strval(driver_options, PDO_MYSQL_ATTR_INIT_COMMAND, NULL
TSRMLS_CC);
if (init_cmd) {
if (mysql_options(H->server, MYSQL_INIT_COMMAND, (const char *)init_cmd)) {
@@ -646,6 +647,7 @@
}
efree(default_group);
}
+#endif
}
dbname = vars[1].optval;
Modified: trunk/php5/ext/pdo_mysqlnd/pdo_mysql.c
===================================================================
--- trunk/php5/ext/pdo_mysqlnd/pdo_mysql.c 2008-04-22 14:45:10 UTC (rev 1507)
+++ trunk/php5/ext/pdo_mysqlnd/pdo_mysql.c 2008-04-23 09:35:08 UTC (rev 1508)
@@ -57,12 +57,12 @@
#endif
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_USE_BUFFERED_QUERY",
(long)PDO_MYSQL_ATTR_USE_BUFFERED_QUERY);
- REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_LOCAL_INFILE",
(long)PDO_MYSQL_ATTR_LOCAL_INFILE);
+ REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_LOCAL_INFILE",
(long)PDO_MYSQL_ATTR_LOCAL_INFILE);
+#ifndef PDO_USE_MYSQLND
+ REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_MAX_BUFFER_SIZE",
(long)PDO_MYSQL_ATTR_MAX_BUFFER_SIZE);
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_INIT_COMMAND",
(long)PDO_MYSQL_ATTR_INIT_COMMAND);
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_READ_DEFAULT_FILE",
(long)PDO_MYSQL_ATTR_READ_DEFAULT_FILE);
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_READ_DEFAULT_GROUP",
(long)PDO_MYSQL_ATTR_READ_DEFAULT_GROUP);
-#ifndef PDO_USE_MYSQLND
- REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_MAX_BUFFER_SIZE",
(long)PDO_MYSQL_ATTR_MAX_BUFFER_SIZE);
#endif
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_DIRECT_QUERY",
(long)PDO_MYSQL_ATTR_DIRECT_QUERY);
Modified: trunk/php5/ext/pdo_mysqlnd/php_pdo_mysql_int.h
===================================================================
--- trunk/php5/ext/pdo_mysqlnd/php_pdo_mysql_int.h 2008-04-22 14:45:10 UTC (rev 1507)
+++ trunk/php5/ext/pdo_mysqlnd/php_pdo_mysql_int.h 2008-04-23 09:35:08 UTC (rev 1508)
@@ -147,10 +147,12 @@
enum {
PDO_MYSQL_ATTR_USE_BUFFERED_QUERY = PDO_ATTR_DRIVER_SPECIFIC,
PDO_MYSQL_ATTR_LOCAL_INFILE,
+#ifndef PDO_USE_MYSQLND
PDO_MYSQL_ATTR_INIT_COMMAND,
PDO_MYSQL_ATTR_READ_DEFAULT_FILE,
PDO_MYSQL_ATTR_READ_DEFAULT_GROUP,
PDO_MYSQL_ATTR_MAX_BUFFER_SIZE,
+#endif
PDO_MYSQL_ATTR_DIRECT_QUERY,
};
| Thread |
|---|
| • PHP mysqlnd svn commit: r1508 - trunk/php5/ext/pdo_mysqlnd | uwendel | 23 Apr |