PHP使用mysqli_connect连接到Google Cloud Sql实例数据库

时间:2019-04-09 05:01:05

标签: php google-cloud-sql

我是使用Google Cloud SQLPHP的新手。我无法使用Cloud SQL Instance连接到我的mysqli_connect。我已经在网上进行了大量研究,但仍然无法连接。我已经在test.php中声明了变量,但是我不知道如何使用它们。请帮助

我正在尝试创建一个android app,在这里我必须显示数据库中的数据。我正在使用将php个文件存储在云存储中的方法,我的应用程序会向GET个文件和POST发送phpphp请求文件将从数据库返回数据。那么如何仅使用php连接数据库?

test.php:

<?php
    $public_ip_address = "xx.xxx.xxx.xxx"; // Public IP address of the Instance of Google Cloud SQL
    $user = "root";
    $password = "";
    $instance = "instance_1";
    $database = "db1";

    $conn = mysqli_connect("cloudipad:" + $public_ip_address, $user, $password, $database);
?>

Someone help meeeeeeeeeeeeeeeeeeeeeeeeeeeeeee :(

4 个答案:

答案 0 :(得分:0)

class Sql implements DataModelInterface
{
    private $dsn;
    private $user;
    private $password;

    public function __construct($dsn, $user, $password)
    {
        $this->dsn = $dsn;
        $this->user = $user;
        $this->password = $password;
    }

 private function newConnection()
    {
        $pdo = new PDO($this->dsn, $this->user, $this->password);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        return $pdo;
    }
}

答案 1 :(得分:0)

根据mysqli_connect的官方文档,您错误地传递了第一个参数。

是的,您可以使用MySQLi连接到Cloud SQL实例。如果在本地,则应使用documentation之后的Cloud SQL代理。

一旦您侦听了Cloud SQL代理,并将代码段的最后一行更改为:

    $conn = mysqli_connect('127.0.0.1', $user, $password, $database);

您应该成功连接。

答案 2 :(得分:0)

mysqli_connect对我来说很好,可以将在Google Cloud App Engine上运行的PHP应用程序连接到Cloud SQL ...

// DMBS here means database management system, like Cloud SQL
define('HOSTSPEC', NULL);
define('USERNAME', '[MY_DBMS_USERNAME]');
define('PASSWORD', '[MY_DBMS_PASSWORD]');
define('DATABASE_INSTANCE_NAME', NULL); // Or the name of a database instance within your Cloud SQL instance.
define('PORT', NULL);
define('SOCKET', '/cloudsql/[GOOGLE_CLOUD_PROJECT_NAME]:[GOOGLE_CLOUD_REGION]:[CLOUD_SQL_DBMS_INSTANCE_NAME]');

// Option 1. Object-oriented style...
$mysqli = new mysqli(HOSTSPEC, USERNAME, PASSWORD, DATABASE_INSTANCE_NAME, PORT, SOCKET);

// Option 2. Procedural style...
$DBMSresource = mysqli_connect(HOSTSPEC, USERNAME, PASSWORD, DATABASE_INSTANCE_NAME, PORT, SOCKET);
if (!$DBMSresource)
    // log and handle error, maybe exit...

答案 3 :(得分:-1)

我认为您无法通过mysqli连接到Google Cloud。改用他们的APi。

请参阅:

https://cloud.google.com/php/getting-started/hello-world