1
0
mirror of https://github.com/php/php-src.git synced 2026-03-28 02:02:32 +01:00

Fixed bug #36572 (Added PDO::MYSQL_ATTR_DIRECT_QUERY constant that show be

set when executing internal queries such as "show master status" via MySQL).

Added missing constant for MAX_BUFFER_SIZE.
This commit is contained in:
Ilia Alshanetsky
2006-03-05 17:17:04 +00:00
parent 1fad64d6dc
commit d9b2a3372e
3 changed files with 12 additions and 1 deletions

View File

@@ -160,6 +160,10 @@ static int mysql_handle_preparer(pdo_dbh_t *dbh, const char *sql, long sql_len,
stmt->driver_data = S;
stmt->methods = &mysql_stmt_methods;
if (H->emulate_prepare) {
goto end;
}
/* TODO: add runtime check to determine if the server we are talking to supports
* prepared statements; if it doesn't, we should set stmt->supports_placeholders
* to PDO_PLACEHOLDER_NONE, and have the rest of the code look at S->stmt to
@@ -221,6 +225,7 @@ static int mysql_handle_preparer(pdo_dbh_t *dbh, const char *sql, long sql_len,
fallback:
#endif
end:
stmt->supports_placeholders = PDO_PLACEHOLDER_NONE;
return 1;
@@ -303,7 +308,9 @@ static int pdo_mysql_set_attribute(pdo_dbh_t *dbh, long attr, zval *val TSRMLS_D
case PDO_MYSQL_ATTR_USE_BUFFERED_QUERY:
((pdo_mysql_db_handle *)dbh->driver_data)->buffered = Z_BVAL_P(val);
return 1;
case PDO_MYSQL_ATTR_DIRECT_QUERY:
((pdo_mysql_db_handle *)dbh->driver_data)->emulate_prepare = Z_BVAL_P(val);
return 1;
default:
return 0;
}

View File

@@ -80,6 +80,8 @@ PHP_MINIT_FUNCTION(pdo_mysql)
REGISTER_PDO_CONST_LONG("MYSQL_ATTR_INIT_COMMAND", (long)PDO_MYSQL_ATTR_INIT_COMMAND);
REGISTER_PDO_CONST_LONG("MYSQL_ATTR_READ_DEFAULT_FILE", (long)PDO_MYSQL_ATTR_READ_DEFAULT_FILE);
REGISTER_PDO_CONST_LONG("MYSQL_ATTR_READ_DEFAULT_GROUP", (long)PDO_MYSQL_ATTR_READ_DEFAULT_GROUP);
REGISTER_PDO_CONST_LONG("MYSQL_ATTR_MAX_BUFFER_SIZE", (long)PDO_MYSQL_ATTR_MAX_BUFFER_SIZE);
REGISTER_PDO_CONST_LONG("MYSQL_ATTR_DIRECT_QUERY", (long)PDO_MYSQL_ATTR_DIRECT_QUERY);
return php_pdo_register_driver(&pdo_mysql_driver);
}

View File

@@ -37,6 +37,7 @@ typedef struct {
unsigned attached:1;
unsigned buffered:1;
unsigned emulate_prepare:1;
unsigned _reserved:31;
unsigned long max_buffer_size;
@@ -84,5 +85,6 @@ enum {
PDO_MYSQL_ATTR_READ_DEFAULT_FILE,
PDO_MYSQL_ATTR_READ_DEFAULT_GROUP,
PDO_MYSQL_ATTR_MAX_BUFFER_SIZE,
PDO_MYSQL_ATTR_DIRECT_QUERY,
};
#endif