diff options
-rw-r--r-- | NEWS | 2 | ||||
-rwxr-xr-x | ext/pdo_mysql/mysql_driver.c | 8 | ||||
-rwxr-xr-x | ext/pdo_mysql/pdo_mysql.c | 2 | ||||
-rwxr-xr-x | ext/pdo_mysql/php_pdo_mysql_int.h | 2 | ||||
-rw-r--r-- | ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt | 2 |
5 files changed, 16 insertions, 0 deletions
@@ -51,6 +51,8 @@ PHP NEWS - Fixed bug #45392 (ob_start()/ob_end_clean() and memory_limit). (Ilia) - Fixed bug #45382 (timeout bug in stream_socket_enable_crypto). (vnegrier at optilian dot com, Ilia) +- Fixed bug #44135 (PDO MySQL does not support CLIENT_FOUND_ROWS). (Johannes, + chx1975 at gmail dot com) - Fixed bug #46192 (ArrayObject with objects as storage serialization). (Etienne) diff --git a/ext/pdo_mysql/mysql_driver.c b/ext/pdo_mysql/mysql_driver.c index 19357365d3..68cea255df 100755 --- a/ext/pdo_mysql/mysql_driver.c +++ b/ext/pdo_mysql/mysql_driver.c @@ -636,6 +636,14 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_ H->max_buffer_size = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_MAX_BUFFER_SIZE, H->max_buffer_size TSRMLS_CC); #endif + if (pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_FOUND_ROWS, 0 TSRMLS_CC)) { + connect_opts |= CLIENT_FOUND_ROWS; + } + + if (pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_IGNORE_SPACE, 0 TSRMLS_CC)) { + connect_opts |= CLIENT_IGNORE_SPACE; + } + if (mysql_options(H->server, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout)) { pdo_mysql_error(dbh); goto cleanup; diff --git a/ext/pdo_mysql/pdo_mysql.c b/ext/pdo_mysql/pdo_mysql.c index 2d68e4f4f8..d7c819a61b 100755 --- a/ext/pdo_mysql/pdo_mysql.c +++ b/ext/pdo_mysql/pdo_mysql.c @@ -83,6 +83,8 @@ static PHP_MINIT_FUNCTION(pdo_mysql) REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_COMPRESS", (long)PDO_MYSQL_ATTR_COMPRESS); #endif REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_DIRECT_QUERY", (long)PDO_MYSQL_ATTR_DIRECT_QUERY); + REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_FOUND_ROWS", (long)PDO_MYSQL_ATTR_FOUND_ROWS); + REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_IGNORE_SPACE", (long)PDO_MYSQL_ATTR_IGNORE_SPACE); #ifdef PDO_USE_MYSQLND pdo_mysqlnd_zval_cache = mysqlnd_palloc_init_cache(PDO_MYSQL_G(cache_size)); diff --git a/ext/pdo_mysql/php_pdo_mysql_int.h b/ext/pdo_mysql/php_pdo_mysql_int.h index 46b7237b88..069c4083c3 100755 --- a/ext/pdo_mysql/php_pdo_mysql_int.h +++ b/ext/pdo_mysql/php_pdo_mysql_int.h @@ -161,6 +161,8 @@ enum { PDO_MYSQL_ATTR_COMPRESS, #endif PDO_MYSQL_ATTR_DIRECT_QUERY, + PDO_MYSQL_ATTR_FOUND_ROWS, + PDO_MYSQL_ATTR_IGNORE_SPACE }; #endif diff --git a/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt b/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt index 58f442633b..b09c1a5860 100644 --- a/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt +++ b/ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt @@ -12,6 +12,8 @@ require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc'); 'MYSQL_ATTR_USE_BUFFERED_QUERY' => true, 'MYSQL_ATTR_LOCAL_INFILE' => true, 'MYSQL_ATTR_DIRECT_QUERY' => true, + 'MYSQL_ATTR_FOUND_ROWS' => true, + 'MYSQL_ATTR_IGNORE_SPACE' => true, ); if (!MySQLPDOTest::isPDOMySQLnd()) { |