Я пытаюсь создать базу данных для каждого пользователя, которая подписывается на мое веб-приложение. Эта база данных будет основана на шаблоне для хранения своих данных.
Проблема, с которой я сталкиваюсь, заключается в том, что 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?
Кажется $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);
Других решений пока нет …