PHP подключиться к базе данных экземпляра Google Cloud Sql с помощью mysqli_connect - PullRequest
0 голосов
/ 09 апреля 2019

Я новичок в использовании Google Cloud SQL и PHP.Я не могу подключиться к своему Cloud SQL Instance, используя mysqli_connect.Я проводил много исследований в Интернете, но все еще не могу подключиться.Я указал переменные в test.php, но я не знаю, как их использовать.Пожалуйста, помогите

Я пытаюсь сделать android app, где мне придется показывать данные из базы данных.Я использую метод хранения php файлов в облачном хранилище, и мое приложение отправляет запрос GET или POST на файлы php, а файлы php возвращают данные из базы данных.Так как же я могу использовать 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 голосов
/ 29 мая 2019

mysqli_connect отлично работает для меня, чтобы подключить приложение PHP, работающее на Google Cloud App Engine, к облачному 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...
0 голосов
/ 09 апреля 2019
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;
    }
}
0 голосов
/ 09 апреля 2019

Согласно официальной документации mysqli_connect , вы неправильно передаете первый параметр.

И да, вы можете использовать MySQLi для подключения к экземпляру Cloud SQL. Если это локально, вы должны использовать Cloud SQL Proxy, следуя документации .

После прослушивания Cloud SQL Proxy и изменения последней строки фрагмента кода на:

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

Вы должны успешно подключиться.

0 голосов
/ 09 апреля 2019

Не думаю, что с помощью mysqli вы можете подключиться к Google Cloud.Вместо этого используйте их APi.

см .:

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

...