[英]App Engine (PHP) connection to Cloud SQL failed
我使用Google的“ hello world”应用引擎示例环境创建了自己的php应用。 然后我将现有的app.yaml文件配置为此:
runtime: php55
api_version: 1
handlers:
- url: /
script: index.php
env_variables:
MYSQL_DSN: mysql:dbname=sampledb;unix_socket=/cloudsql/sampleproject:europe-west3:sampleinstance
MYSQL_USER: root
MYSQL_PASSWORD: admin
我的index.php是一个典型的登录页面。 我想从我的云SQL加载用户数据以检查是否允许用户进入下一页。 下一页是包含公司数据的仪表板。 我也想从我的云SQL数据库加载此数据。
那是我读取数据的php代码(我从Google书架教程中复制了它,因为我完全不熟悉这些东西。)
<?php
$dsn = getenv('MYSQL_DSN');
$user = getenv('MYSQL_USER');
$password = getenv('MYSQL_PASSWORD');
if (!isset($dsn; $user) || false=== $password) {
throw new Exception('Set MYSQL_DSN');
}
$db = new PDO($dsn, $user, $password);
$statement = $db->prepare("SELECT clicks from display_inbox");
$statement->execute();
$all = $statement->fetchAll();
foreach ($all as $data) {
echo $data["clicks"], "<br>";
}
?>
这不是特定的查询,我只想检查连接。 部署我的应用程序后,我得到以下结果:
HTTP-500错误:sampleproject.appspot.com当前无法处理此请求。
我只是不知道这是我的app.yaml还是我的php代码。 如果有人拥有app.yaml文件的示例代码和读取云sql数据的典型查询,那将非常有帮助。
您的app.yaml和index.php文件中存在一些语法错误
尝试这个:
app.yaml:
runtime: php55
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: index.php
# [START env]
env_variables:
MYSQL_DSN: mysql:unix_socket=/cloudsql/sampleproject:europe-west3:sampleinstance;dbname=sampledb
MYSQL_USER: root
MYSQL_PASSWORD: admin
# [END env]
index.php:
<?php
$dsn = getenv('MYSQL_DSN');
$user = getenv('MYSQL_USER');
$password = getenv('MYSQL_PASSWORD');
if (!isset($dsn, $user) || false === $password) {
throw new Exception('Set MYSQL_DSN');
}
$db = new PDO($dsn, $user, $password);
$statement = $db->prepare("SELECT clicks from display_inbox");
$statement->execute();
$all = $statement->fetchAll();
foreach ($all as $data) {
echo $data["clicks"]."<br>";
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.