【发布时间】:2022-01-05 15:45:12
【问题描述】:
我是 AWS 的新手,我尝试部署我的 Web 应用程序,但不断收到 504 Gate-way Timeout。但是,经过一些调试和重新部署后,我注意到这是由我的 index.php 文件的 PHP 段引起的:
<?php
$dsn = 'mysql:host=<AWS database hostname>; dbname=e-flash-card-schema';
$username = '<username>';
$password = '<password>';
$db = new PDO($dsn, $username, $password);
session_start();
$user = @$_SESSION['Username'];
$card_number = @$_SESSION['Card_number'];
$query1 = "SELECT Front_Text FROM `e-flash-card-schema`.`card_text` WHERE Username = '$user' AND Card_Number = '$card_number'";
$statement1 = $db->prepare($query1);
$statement1->execute();
$front_text = $statement1->fetch();
$statement1->closeCursor();
$query2 = "SELECT Back_Text FROM `e-flash-card-schema`.`card_text` WHERE Username = '$user' AND Card_Number = '$card_number'";
$statement2 = $db->prepare($query2);
$statement2->execute();
$back_text = $statement2->fetch();
$statement2->closeCursor();
?>
特别是当我删除 session_start(); 行之前的所有内容时,网页能够加载,尽管我假设它的错误是由 $query1 = ... 及以下行引起的。这让我相信我尝试连接到数据库时出现了一些错误
当我使用 XAMPP 连接到我机器上的同一个 AWS 数据库服务器运行相同的代码时,一切正常。有谁知道这可能是什么原因造成的?
如果有帮助,我还将使用 AWS 数据库的 MariaDB 引擎和 Elastic Beanstalk 来部署我的 Web 应用程序。
编辑:如果有人在看这个问题,可能是因为无法处理这种类型的事情吗?
【问题讨论】:
-
@KenLee 我刚试过,结果还是一样
-
@KenLee 当我在我的机器上运行时它说连接成功,但在我的代码中出现另一个错误:
Fatal error: Uncaught Error: Call to a member function execute() on bool in C:\xampp\htdocs\E-FlashCard\E-Flash cards project\index.php:26 Stack trace: #0 {main} thrown in C:\xampp\htdocs\E-FlashCard\E-Flash cards project\index.php on line 26我猜是因为$statement1->execute();不适用于 mysqli? -
@KenLee 我切换回使用 PDO,它在我的机器上运行良好。
Connected Succesfully -
一切都解决了吗?
-
@KenLee 不是真的,它在我的机器上一直运行良好,但是当我尝试部署到 AWS 时,我仍然收到
504 Gate-way Timeout
标签: php mysql sql amazon-web-services mariadb