使用 PHP 建立 TCP 連線
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
使用 PHP 開啟與 SQL Server 適用的 Cloud SQL 的 TCP 連線。
深入探索
如需包含這個程式碼範例的詳細說明文件,請參閱下列內容:
程式碼範例
PHP
如要向 SQL Server 適用的 Cloud SQL 進行驗證,請設定應用程式預設憑證。
詳情請參閱「為本機開發環境設定驗證」。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。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 TCP connection by using PHP\n\nOpen a TCP connection to Cloud SQL for SQL Server 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/sqlserver/connect-app-engine-flexible)\n- [Connect from App Engine standard environment](/sql/docs/sqlserver/connect-app-engine-standard)\n- [Connect from Cloud Build](/sql/docs/sqlserver/connect-build)\n- [Connect from Cloud Run](/sql/docs/sqlserver/connect-run)\n- [Connect from Cloud Run functions](/sql/docs/sqlserver/connect-functions)\n- [Connect using the Cloud SQL Auth Proxy](/sql/docs/sqlserver/connect-auth-proxy)\n\nCode sample\n-----------\n\n### PHP\n\n\nTo authenticate to Cloud SQL for SQL Server, 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\\SQLServer;\n\n use PDO;\n use PDOException;\n use RuntimeException;\n use TypeError;\n\n class DatabaseTcp\n {\n public static function initTcpDatabaseConnection(): 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 $instanceHost = getenv('INSTANCE_HOST'); // e.g. '127.0.0.1' ('172.17.0.1' for GAE Flex)\n\n // Connect using TCP\n $dsn = sprintf(\n 'sqlsrv:server=%s;Database=%s',\n $instanceHost,\n $dbName\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, and $instanceHost (for TCP mode). ' .\n 'The PHP error was %s',\n $e-\u003egetMessage()\n ),\n $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/sqlserver/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_sqlserver)."]]