mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
MFH: add MySQL options and corresponding constants
This commit is contained in:
parent
7c01510b95
commit
9ffefbc74e
3 changed files with 46 additions and 0 deletions
|
@ -420,12 +420,50 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
|
|||
/* handle MySQL options */
|
||||
if (driver_options) {
|
||||
long connect_timeout = pdo_attr_lval(driver_options, PDO_ATTR_TIMEOUT, 30 TSRMLS_CC);
|
||||
long local_infile = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_LOCAL_INFILE, 0 TSRMLS_CC);
|
||||
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);
|
||||
|
||||
if (mysql_options(H->server, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout)) {
|
||||
pdo_mysql_error(dbh);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (mysql_options(H->server, MYSQL_OPT_LOCAL_INFILE, (const char *)&local_infile)) {
|
||||
pdo_mysql_error(dbh);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
init_cmd = pdo_attr_strval(driver_options, PDO_MYSQL_ATTR_INIT_COMMAND, NULL TSRMLS_CC);
|
||||
if (init_cmd) {
|
||||
if (mysql_options(H->server, MYSQL_INIT_COMMAND, (const char *)init_cmd)) {
|
||||
efree(init_cmd);
|
||||
pdo_mysql_error(dbh);
|
||||
goto cleanup;
|
||||
}
|
||||
efree(init_cmd);
|
||||
}
|
||||
|
||||
default_file = pdo_attr_strval(driver_options, PDO_MYSQL_ATTR_READ_DEFAULT_FILE, NULL TSRMLS_CC);
|
||||
if (default_file) {
|
||||
if (mysql_options(H->server, MYSQL_READ_DEFAULT_FILE, (const char *)default_file)) {
|
||||
efree(default_file);
|
||||
pdo_mysql_error(dbh);
|
||||
goto cleanup;
|
||||
}
|
||||
efree(default_file);
|
||||
}
|
||||
|
||||
default_group= pdo_attr_strval(driver_options, PDO_MYSQL_ATTR_READ_DEFAULT_GROUP, NULL TSRMLS_CC);
|
||||
if (default_group) {
|
||||
if (mysql_options(H->server, MYSQL_READ_DEFAULT_GROUP, (const char *)default_group)) {
|
||||
efree(default_group);
|
||||
pdo_mysql_error(dbh);
|
||||
goto cleanup;
|
||||
}
|
||||
efree(default_group);
|
||||
}
|
||||
}
|
||||
|
||||
dbname = vars[1].optval;
|
||||
|
|
|
@ -76,6 +76,10 @@ ZEND_GET_MODULE(pdo_mysql)
|
|||
PHP_MINIT_FUNCTION(pdo_mysql)
|
||||
{
|
||||
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_USE_BUFFERED_QUERY", (long)PDO_MYSQL_ATTR_USE_BUFFERED_QUERY);
|
||||
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_LOCAL_INFILE", (long)PDO_MYSQL_ATTR_LOCAL_INFILE);
|
||||
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_INIT_COMMAND", (long)PDO_MYSQL_ATTR_INIT_COMMAND);
|
||||
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_READ_DEFAULT_FILE", (long)PDO_MYSQL_ATTR_READ_DEFAULT_FILE);
|
||||
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_READ_DEFAULT_GROUP", (long)PDO_MYSQL_ATTR_READ_DEFAULT_GROUP);
|
||||
|
||||
return php_pdo_register_driver(&pdo_mysql_driver);
|
||||
}
|
||||
|
|
|
@ -78,5 +78,9 @@ extern struct pdo_stmt_methods mysql_stmt_methods;
|
|||
|
||||
enum {
|
||||
PDO_MYSQL_ATTR_USE_BUFFERED_QUERY = PDO_ATTR_DRIVER_SPECIFIC,
|
||||
PDO_MYSQL_ATTR_LOCAL_INFILE,
|
||||
PDO_MYSQL_ATTR_INIT_COMMAND,
|
||||
PDO_MYSQL_ATTR_READ_DEFAULT_FILE,
|
||||
PDO_MYSQL_ATTR_READ_DEFAULT_GROUP,
|
||||
};
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue