我正在尝试为每个注册我的网络应用的用户创建一个数据库。该数据库将基于存储其数据的模板。
我遇到的问题是Google Could SQL
似乎没有通过PHP
和MySQL
查询创建数据库。
连接到实例工作正常,并且根据此代码不会触发任何错误:
//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:
我错过了什么吗?如何通过database
在Cloud SQL
个实例中创建PHP
?感谢您的任何意见。
任何人都可以确认这实际上可以在GAE PHP和Cloud SQL上完成吗?
答案 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);