]> granicus.if.org Git - php/commitdiff
Fix #44135 (PDO MySQL does not support CLIENT_FOUND_ROWS)
authorJohannes Schlüter <johannes@php.net>
Mon, 27 Oct 2008 18:29:57 +0000 (18:29 +0000)
committerJohannes Schlüter <johannes@php.net>
Mon, 27 Oct 2008 18:29:57 +0000 (18:29 +0000)
ext/pdo_mysql/mysql_driver.c
ext/pdo_mysql/pdo_mysql.c
ext/pdo_mysql/php_pdo_mysql_int.h
ext/pdo_mysql/tests/pdo_mysql_class_constants.phpt

index 19357365d3ed06fa778425dd057c223c20bccc04..68cea255dff08b65dc2ff242f943d5a65e9f00e8 100755 (executable)
@@ -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;
index 2d68e4f4f8bb58cd6fc001bdeb65264583f236f8..d7c819a61b04f5a39686090c68ebcf88e2b20f2a 100755 (executable)
@@ -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));
index 46b7237b8848432654627ffe64a8e7051fdb3c95..069c4083c3b65f4e22e6398965fc338d04fe048d 100755 (executable)
@@ -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
index 58f442633b1b65d32378167aa512e40eee4e8b16..b09c1a5860ab86bf999b954db2d41793cb6499db 100644 (file)
@@ -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()) {