|
19 | 19 |
|
20 | 20 | class DB |
21 | 21 | { |
22 | | - private $connection; |
23 | | - |
24 | | - public function __construct() |
25 | | - { |
26 | | - $config = [ |
27 | | - "username" => getenv("DB_USER"), |
28 | | - "password" => getenv("DB_PASS"), |
29 | | - "schema" => getenv("DB_NAME"), |
30 | | - "hostname" => getenv("DB_HOSTNAME") ?: "127.0.0.1", |
31 | | - "cloud_sql_instance_name" => getenv("CLOUD_SQL_INSTANCE_NAME") |
32 | | - ]; |
33 | | - |
34 | | - $this->connection = $this->connect($config); |
35 | | - } |
36 | | - |
37 | | - private function connect($config) |
| 22 | + public static function createPdoConnection() |
38 | 23 | { |
39 | | - $dsn = "pgsql:dbname={$config['schema']};host={$config['hostname']}"; |
40 | | - |
41 | | - if ($config["cloud_sql_instance_name"] != "") { |
42 | | - $dsn = "pgsql:dbname={$config['schema']};host=/cloudsql/{$config['cloud_sql_instance_name']}"; |
| 24 | + $username = getenv("DB_USER"); |
| 25 | + $password = getenv("DB_PASS"); |
| 26 | + $schema = getenv("DB_NAME"); |
| 27 | + $hostname = getenv("DB_HOSTNAME") ?: "127.0.0.1"; |
| 28 | + $cloud_sql_connection_name = getenv("CLOUD_SQL_CONNECTION_NAME"); |
| 29 | + # [START cloud_sql_postgres_pdo_create] |
| 30 | + // $username = 'your_db_user'; |
| 31 | + // $password = 'yoursupersecretpassword'; |
| 32 | + // $schema = 'your_db_name'; |
| 33 | + // $cloud_sql_connection_name = 'Your Cloud SQL Connection name'; |
| 34 | + |
| 35 | + if ($cloud_sql_connection_name) { |
| 36 | + // Connect using UNIX sockets |
| 37 | + $dsn = sprintf( |
| 38 | + 'pgsql:dbname=%s;host=/cloudsql/%s', |
| 39 | + $schema, |
| 40 | + $cloud_sql_connection_name |
| 41 | + ); |
| 42 | + } else { |
| 43 | + // Connect using TCP |
| 44 | + // $hostname = '127.0.0.1'; |
| 45 | + $dsn = sprintf('pgsql:dbname=%s;host=%s', $schema, $hostname); |
43 | 46 | } |
44 | 47 |
|
45 | | - return new PDO($dsn, $config['username'], $config['password']); |
46 | | - } |
47 | | - |
48 | | - public function get_connection() |
49 | | - { |
50 | | - return $this->connection; |
| 48 | + return new PDO($dsn, $username, $password); |
| 49 | + # [END cloud_sql_postgres_pdo_create] |
51 | 50 | } |
52 | 51 | } |
0 commit comments