Я хочу создать PHP-файл, который сохраняет информацию в базе данных. Эта информация предоставляется в формате JSON с использованием POST url.
Если бы это был PhpMyAdmin, мы бы сделали это, как показано ниже:
<?php
$con = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_DATABASE);
if(mysqli_connect_errno()){
echo "Error connecting to database";
}else{
$json = file_get_contents('php://input');
$obj = json_decode($json);
$x = $obj->{'x'};
$y = $obj->{'y'};
$z = $obj->{'z'};
$query = "INSERT INTO table_name VALUES('$x', '$y', '$z')";
$result = $con->query($query);
if(!$result){
die("Data base error");
}
}
Чтобы запустить выше php-файл, мы получаем url, и если вы передаете данные на этот url, желаемая операция выполняется. URL будет примерно таким, и мы можем получить к нему доступ из любого места:
«HTTP: //****server_name*****/****file_name****.php»
Теперь я хочу сделать то же самое с помощью Google Cloud. Я создал базу данных в облаке SQL. Но я не понимаю, где создать файл PHP, как получить доступ к базе данных в этом файле PHP и каков будет URL.
Может кто-нибудь, пожалуйста, помогите, поскольку я новичок в Google Cloud. Спасибо!!!
Один из вариантов — написать Google App Engine (GAE) PHP приложение для него и развернуть / запустить его на GAE (GAE позаботится обо всем ниже). Более простой IMHO плюс потенциально бесплатный (в зависимости от использования вашего приложения).
Другой вариант заключается в использовании Виртуальная машина Google Compute Engine (GCE) и управляйте / запускайте свое приложение (и все необходимые ниже) самостоятельно.
И GAE, и GCE являются продуктами Google Cloud.
Вы можете развернуть свой код в GAE без особых проблем.
Вы можете просто определить app.yaml
в папке вашего проекта и развернуть в GAE.
В вашем app.yaml
Вы можете определить детали вашего соединения.
runtime: php55
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: index.php
# [START env]
env_variables:
# Replace project, instance, database, user and password with the values obtained
# when configuring your Cloud SQL instance.
MYSQL_DSN: mysql:unix_socket=/cloudsql/INSTANCE_CONNECTION_NAME;dbname=DATABASE
MYSQL_USER: root
MYSQL_PASSWORD: ''
# [END env]
Вы можете определить детали подключения в самом коде (но не в;)) или определить в app.yaml
как указано выше, и вызовите значения в вашем коде как getenv('MYSQL_PASSWORD');
Документы по использованию Google Cloud SQL в стандарте GAE env Вот
(Я предлагаю вам использовать Гибкая среда скорее Стандартная среда, который не требует от вас большой работы.
Вот небольшой набор слайдов, который я сделал для сессии на начало работы с GAE Flexible env с Php )