mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
PDO: support username & password specified in DSN
This commit is contained in:
parent
7f1fef9fe0
commit
a7881df281
7 changed files with 107 additions and 8 deletions
|
@ -568,9 +568,11 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options)
|
|||
struct pdo_data_src_parser vars[] = {
|
||||
{ "charset", NULL, 0 },
|
||||
{ "dbname", "", 0 },
|
||||
{ "host", "localhost", 0 },
|
||||
{ "port", "3306", 0 },
|
||||
{ "host", "localhost", 0 },
|
||||
{ "port", "3306", 0 },
|
||||
{ "unix_socket", PDO_DEFAULT_MYSQL_UNIX_ADDR, 0 },
|
||||
{ "user", NULL, 0 },
|
||||
{ "password", NULL, 0 },
|
||||
};
|
||||
int connect_opts = 0
|
||||
#ifdef CLIENT_MULTI_RESULTS
|
||||
|
@ -596,7 +598,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options)
|
|||
PDO_DBG_INF("multi results");
|
||||
#endif
|
||||
|
||||
php_pdo_parse_data_source(dbh->data_source, dbh->data_source_len, vars, 5);
|
||||
php_pdo_parse_data_source(dbh->data_source, dbh->data_source_len, vars, 7);
|
||||
|
||||
H = pecalloc(1, sizeof(pdo_mysql_db_handle), dbh->is_persistent);
|
||||
|
||||
|
@ -808,6 +810,14 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options)
|
|||
unix_socket = vars[4].optval;
|
||||
}
|
||||
|
||||
if (!dbh->username && vars[5].optval) {
|
||||
dbh->username = vars[5].optval;
|
||||
}
|
||||
|
||||
if (!dbh->password && vars[6].optval) {
|
||||
dbh->password = vars[6].optval;
|
||||
}
|
||||
|
||||
/* TODO: - Check zval cache + ZTS */
|
||||
#ifdef PDO_USE_MYSQLND
|
||||
if (dbname) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue