--TEST-- GitHub #12424 (Fix GH-12423: [pdo_pgsql] Changed to prioritize DSN authentication information over arguments.) --EXTENSIONS-- pdo pdo_pgsql --SKIPIF-- --FILE-- PDO::ERRMODE_EXCEPTION]); echo "Connected.".PHP_EOL.PHP_EOL; } catch (PDOException $e) { echo $e->getMessage().PHP_EOL; } echo "dsn with credentials / no user / no password".PHP_EOL; try { $db = new PDO("{$dsn} user={$user} password={$password}", null, null, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]); echo "Connected.".PHP_EOL.PHP_EOL; } catch (PDOException $e) { echo $e->getMessage().PHP_EOL; } echo "dsn with correct user / incorrect user / correct password".PHP_EOL; try { $db = new PDO("{$dsn} user={$user}", 'hoge', $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]); echo "Connected.".PHP_EOL.PHP_EOL; } catch (PDOException $e) { echo $e->getMessage().PHP_EOL; } echo "dsn with correct password / correct user / incorrect password".PHP_EOL; try { $db = new PDO("{$dsn} password={$password}", $user, 'fuga', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]); echo "Connected.".PHP_EOL.PHP_EOL; } catch (PDOException $e) { echo $e->getMessage().PHP_EOL; } echo "dsn with correct credentials / incorrect user / incorrect password".PHP_EOL; try { $db = new PDO("{$dsn} user={$user} password={$password}", 'hoge', 'fuga', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]); echo "Connected.".PHP_EOL; } catch (PDOException $e) { echo $e->getMessage().PHP_EOL; } ?> --EXPECT-- dsn without credentials / correct user / correct password Connected. dsn with credentials / no user / no password Connected. dsn with correct user / incorrect user / correct password Connected. dsn with correct password / correct user / incorrect password Connected. dsn with correct credentials / incorrect user / incorrect password Connected.