需要帮助将我的App Engine PHP与我的Google Cloud SQL数据库连接起来

时间:2014-02-17 00:54:45

标签: php mysql sql sql-server google-app-engine

以下是我的php脚本尝试连接到我的Google SQL云数据库时的sql连接代码

<?php

$con=mysqli_connect(":/cloudsql/projectID:google-cloud-instance","root","root","DATABASE");
// Check connection
if (mysqli_connect_errno())
{
echo "Oops! Something Must Have Went Wrong?: " . mysqli_connect_error()
;`

但是当我处理整个php脚本时,我收到以下错误:

"php_network_getaddresses: gethostbyname failed. errno=0Error:"

我是初学者,所以如果有人可以帮助我......

  1. 了解这意味着什么
  2. 我该如何解决?
  3. 先谢谢你的帮助!

3 个答案:

答案 0 :(得分:3)

您需要将云SQL实例名称作为'socket'参数传递给MySQLi constructor。例如

$instance_name = ":/cloudsql/projectID:google-cloud-instance";
$c = new mysqli(null, $username, $password, $database, 0, $instance_name);

如果您使用的是默认身份验证(应用程序级别身份验证),那么您可以传递root密码而无需密码进行连接。

$instance_name = ":/cloudsql/projectID:google-cloud-instance";
$c = new mysqli(null, "root", "", $database, 0, $instance_name);

答案 1 :(得分:0)

https://developers.google.com/appengine/docs/php/cloud-sql/#PHP_Connecting_to_your_Cloud_SQL_instance。看起来你正在混合mysqli和mysql_connect语法。选择一个并按照文档中的示例进行操作。

答案 2 :(得分:0)

对于CloudSQL,建议您使用unix套接字。

如果您正在使用mysqli_connect,则可以在php.ini中指定默认套接字。

php.ini mysqli.default_socket= '/cloudsql/CONNECTION_NAME'

$ db = mysqli_connect('localhost','USER','PASSWORD','DB');