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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user