Динамическое создание баз данных с Google Cloud SQL и переполнением стека

Я пытаюсь создать базу данных для каждого пользователя, которая подписывается на мое веб-приложение. Эта база данных будет основана на шаблоне для хранения своих данных.

Проблема, с которой я сталкиваюсь, заключается в том, что 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?

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);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]