使用 PHP 创建套接字连接
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
使用 PHP 打开与 Cloud SQL for PostgreSQL 的 Unix 套接字连接。
深入探索
如需查看包含此代码示例的详细文档,请参阅以下内容:
代码示例
PHP
如需向 Cloud SQL for PostgreSQL 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],[],[],[],null,["# Create a socket connection by using PHP\n\nOpen a Unix socket connection to Cloud SQL for PostgreSQL by using PHP.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Connect from App Engine flexible environment](/sql/docs/postgres/connect-app-engine-flexible)\n- [Connect from App Engine standard environment](/sql/docs/postgres/connect-app-engine-standard)\n- [Connect from Cloud Build](/sql/docs/postgres/connect-build)\n- [Connect from Cloud Run](/sql/docs/postgres/connect-run)\n- [Connect from Cloud Run functions](/sql/docs/postgres/connect-functions)\n- [Connect using the Cloud SQL Auth Proxy](/sql/docs/postgres/connect-auth-proxy)\n- [Manage database connections](/sql/docs/postgres/manage-connections)\n\nCode sample\n-----------\n\n### PHP\n\n\nTo authenticate to Cloud SQL for PostgreSQL, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n namespace Google\\Cloud\\Samples\\CloudSQL\\Postgres;\n\n use PDO;\n use PDOException;\n use RuntimeException;\n use TypeError;\n\n class DatabaseUnix\n {\n public static function initUnixDatabaseConnection(): PDO\n {\n try {\n // Note: Saving credentials in environment variables is convenient, but not\n // secure - consider a more secure solution such as\n // Cloud Secret Manager (https://cloud.google.com/secret-manager) to help\n // keep secrets safe.\n $username = getenv('DB_USER'); // e.g. 'your_db_user'\n $password = getenv('DB_PASS'); // e.g. 'your_db_password'\n $dbName = getenv('DB_NAME'); // e.g. 'your_db_name'\n $instanceUnixSocket = getenv('INSTANCE_UNIX_SOCKET'); // e.g. '/cloudsql/project:region:instance'\n\n // Connect using UNIX sockets\n $dsn = sprintf(\n 'pgsql:dbname=%s;host=%s',\n $dbName,\n $instanceUnixSocket\n );\n\n // Connect to the database.\n $conn = new PDO(\n $dsn,\n $username,\n $password,\n # ...\n );\n } catch (TypeError $e) {\n throw new RuntimeException(\n sprintf(\n 'Invalid or missing configuration! Make sure you have set ' .\n '$username, $password, $dbName, ' .\n 'and $instanceUnixSocket (for UNIX socket mode). ' .\n 'The PHP error was %s',\n $e-\u003egetMessage()\n ),\n (int) $e-\u003egetCode(),\n $e\n );\n } catch (PDOException $e) {\n throw new RuntimeException(\n sprintf(\n 'Could not connect to the Cloud SQL Database. Check that ' .\n 'your username and password are correct, that the Cloud SQL ' .\n 'proxy is running, and that the database exists and is ready ' .\n 'for use. For more assistance, refer to %s. The PDO error was %s',\n 'https://cloud.google.com/sql/docs/postgres/connect-external-app',\n $e-\u003egetMessage()\n ),\n (int) $e-\u003egetCode(),\n $e\n );\n }\n\n return $conn;\n }\n }\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=cloud_sql_postgres)."]]