使用Google Cloud SQL和PHP动态创建数据库

时间:2014-09-26 08:50:45

标签: php sql google-app-engine mysqli google-cloud-sql

我正在尝试为每个注册我的网络应用的用户创建一个数据库。该数据库将基于存储其数据的模板。

我遇到的问题是Google Could SQL似乎没有通过PHPMySQL查询创建数据库。

连接到实例工作正常,并且根据此代码不会触发任何错误:

//CLOUD SQL CONNECTION FOR SUBSCRIPTIONS
        $hostname = details;
        $username = details;
        $password = details;

        $port = details;
        $socket = details;

        $connection = new mysqli($hostname, $username, $password, $port, $socket);

        // Check Connection
        if($connection->connect_error) {
            trigger_error('Connection failed: ' . $connection->connect_error, E_USER_ERROR);
        }

但是,当我创建一个简单的数据库时,mysqli失败而没有错误......:

//Create Database
        $username = 'account';
        $database = 'sub_'. $username .'_db';

        $query = "CREATE DATABASE  IF NOT EXISTS `{$database}`;";

        if(mysqli_query($connection, $query)) {
            echo "Database my_db created successfully";
        } else {
            echo "Error creating database: " . mysqli_error($connection);
        }

这个输出只是:Error creating database:

我错过了什么吗?如何通过databaseCloud SQL个实例中创建PHP?感谢您的任何意见。

任何人都可以确认这实际上可以在GAE PHP和Cloud SQL上完成吗?

1 个答案:

答案 0 :(得分:1)

尽管没有抛出错误,$connection变量似乎实际上是NULL。这对我有用:

我已连接到现有的database

//CLOUD SQL CONNECTION FOR SUBSCRIPTIONS
        $hostname = details;
        $username = details;
        $password = details;
        $db = details;
        $port = details;
        $socket = details;

        $connection = new mysqli($hostname, $username, $password, $db, $port, $socket);

        // Check Connection
        if($connection->connect_error) {
            trigger_error('Connection failed: ' . $connection->connect_error, E_USER_ERROR);
        }

然后我创建了一个新的database

//Create Database
        $username = 'account';
        $database = 'sub_'. $username .'_db';

        $query = "CREATE DATABASE  IF NOT EXISTS `{$database}`;";

        if(mysqli_query($connection, $query)) {
            echo "Database my_db created successfully";
        } else {
            echo "Error creating database: " . mysqli_error($connection);
        }

然后使用mysqli_select_db()选择新创建的database

//Select Newly Created DB
            mysqli_select_db($connection, $database);