diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2006-03-17 00:15:09 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2006-03-17 00:15:09 +0000 |
commit | 6fd71dbbe922b46d49ee7b2843c273ab02a6fcac (patch) | |
tree | e6ee0f75f0583263d1c4f806beb607ec9c0d5c61 | |
parent | 7c14d86dc3f7e63e6266ccb78fc4be40470076fd (diff) | |
download | php-git-6fd71dbbe922b46d49ee7b2843c273ab02a6fcac.tar.gz |
Allow PDO_MYSQL_ATTR_DIRECT_QUERY to be set via constructor
Allow getAttribute() to fetch MySQL specific attributes.
Eliminate unnecessary auto-commit call on connect.
-rwxr-xr-x | ext/pdo_mysql/mysql_driver.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/ext/pdo_mysql/mysql_driver.c b/ext/pdo_mysql/mysql_driver.c index 318fb15473..bdbc5fe944 100755 --- a/ext/pdo_mysql/mysql_driver.c +++ b/ext/pdo_mysql/mysql_driver.c @@ -362,6 +362,14 @@ static int pdo_mysql_get_attribute(pdo_dbh_t *dbh, long attr, zval *return_value ZVAL_LONG(return_value, H->buffered); return 1; + case PDO_MYSQL_ATTR_DIRECT_QUERY: + ZVAL_LONG(return_value, H->emulate_prepare); + return 1; + + case PDO_MYSQL_ATTR_MAX_BUFFER_SIZE: + ZVAL_LONG(return_value, H->max_buffer_size); + return 1; + default: return 0; } @@ -440,7 +448,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_ char *init_cmd = NULL, *default_file = NULL, *default_group = NULL; H->buffered = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_USE_BUFFERED_QUERY, 0 TSRMLS_CC); - + H->emulate_prepare = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_DIRECT_QUERY, 0 TSRMLS_CC); H->max_buffer_size = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_MAX_BUFFER_SIZE, 1024 * 1024 TSRMLS_CC); if (mysql_options(H->server, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout)) { @@ -497,7 +505,9 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_ goto cleanup; } - mysql_handle_autocommit(dbh TSRMLS_CC); + if (!dbh->auto_commit) { + mysql_handle_autocommit(dbh TSRMLS_CC); + } H->attached = 1; |