public static function connect($credentials, $allow_missing_db = NULL) { if (self::$instance === NULL) { self::$instance = new Plusql(); } if (!isset(self::$instance->credentials[$credentials])) { throw new InvalidCredentialsException('Unable to begin Plusql session with credentials named: ' . $credentials . ' (cos they don\'t exist)'); } $host = self::$instance->credentials[$credentials][0]; $user = self::$instance->credentials[$credentials][1]; $password = self::$instance->credentials[$credentials][2]; $dbname = self::$instance->credentials[$credentials][3]; $key = implode('-', self::$instance->credentials[$credentials]); if (!isset(self::$instance->connections[$key])) { $conn = new PluSQL\Connection($host, $user, $password, $dbname); self::$instance->connections[$key] = $conn; } else { $conn = self::$instance->connections[$key]; } try { $conn->connect(); } catch (Exception $exc) { if ($allow_missing_db != self::ALLOW_MISSING_DB) { throw $exc; } } return $conn; }