Crear una conexión de socket con PHP
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Abre una conexión de sockets Unix a Cloud SQL para PostgreSQL mediante PHP.
Explora más
Para obtener documentación en la que se incluye esta muestra de código, consulta lo siguiente:
Muestra de código
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","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)."]]