无法使用Google App Engine上的Slim框架连接到Google Cloud SQL

Kri*_*ish 4 mysql google-app-engine slim

我正在使用Slim框架为我的应用程序构建api。我无法连接到Google Cloud SQL。

我在下面提供了错误消息。

我一直在codeigniter中使用它,没有任何问题。有人可以帮助我了解如何解决此问题。

数据库代码:

function getDB() {

$dbhost=":/cloudsql/projid:instancename";
$dbuser="root";
$dbpass="";
$dbname="dbname";

$dbConnection = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); 
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbConnection;
}
Run Code Online (Sandbox Code Playgroud)

错误信息

{"error":{"text":SQLSTATE[HY000] [2002] php_network_getaddresses: gethostbyname failed. errno=0}}
Run Code Online (Sandbox Code Playgroud)

PS我在Localhost上没有遇到这个问题。

Jos*_*h J 5

您的PDO连接字符串应使用mysql:unix_socket而不是mysql:host

https://cloud.google.com/appengine/docs/php/cloud-sql/

PDO_MySQL

$db = new pdo('mysql:unix_socket=/cloudsql/<your-project-id>:<your-instance-name>;dbname=<database-name>',
  'root',  // username
  ''       // password
  );
Run Code Online (Sandbox Code Playgroud)