php - 在测试环境中,php文件根本不呈现的问题
问题描述
我构建了一个基本应用程序,它从外部源提取数据并通过 PHP 将其存储在数据库中,它与我的下一步在同一台服务器上运行。
我的下一步是检索此信息并在仪表板的 HTML 输出中使用它。我想出的代码如下,它是我能想到的最基本的查询和变量系统,但是当我把它放到我的测试环境中时,它就不起作用了。我认为自己在这个应用程序中对 PHP 比较陌生,但从我所做的所有研究来看,这似乎是最好的途径。任何帮助或建议将不胜感激。
我尝试了几种不同的方式来建立 SQL 连接,甚至尝试全局存储变量,但没有运气。另外,我已经通过几个格式化程序将此代码放入以确保一切正确,并在尝试确保它没有添加不应该添加的东西之后手动检查。
<?php
// Retrieve Morning Record Data
$conn = new mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT date, team, dollar_amount, car_count FROM morning";
if ($result = $conn->query($sql)) {
// output data into variables
$dateb = $result["date"];
$teamb = $result["team"];
$damountb = $result["dollar_ammount"];
$ccountb = $result["car_count"];
}
else {
echo "Error Retrieving Data/No Data Found in morning table";
}
$conn->close();
// Retrieve Lunch Record Data
$conn = new mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT date, team, dollar_amount, car_count FROM lunch";
if ($result = $conn->query($sql)) {
// output data into variables
$datel = $result["date"];
$teaml = $result["team"];
$damountl = $result["dollar_ammount"];
$ccountl = $result["car_count"];
}
else {
echo "Error Retrieving Data/No Data Found in lunch table";
}
$conn->close();
// Retrieve Lunch Record Data
$conn = new mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT date, team, dollar_amount, car_count FROM dinner";
if ($result = $conn->query($sql)) {
// output data into variables
$dated = $result["date"];
$teamd = $result["team"];
$damountd = $result["dollar_ammount"];
$ccountd = $result["car_count"];
}
else {
echo "Error Retrieving Data/No Data Found in dinner table";
}
$conn->close();
?>
<!DOCTYPE html>
<html>
<head>
<div>
<div>
<h1>Drive Thru Records</h1>
</div>
<div>
<h2>Breakfast Record</h2>
<h3>Team</h3>
<p><?php
echo $teamb;
?></p>
<h3>Dollar Amount</h3>
<p><?php
echo $damountb;
?></p>
<h3>Car Count</h3>
<p><?php
echo $ccountb;
?></p>
<h3>Date</h3>
<p><?php
echo $dateb;
?></p>
</div>
<div>
<h2>Lunch Record</h2>
<h3>Team</h3>
<p><?php
echo $teaml;
?></p>
<h3>Dollar Amount</h3>
<p><?php
echo $damountl;
?></p>
<h3>Car Count</h3>
<p><?php
echo $ccountl;
?></p>
<h3>Date</h3>
<p><?php
echo $datel;
?></p>
</div>
<div>
<h2>Dinner Record</h2>
<h3>Team</h3>
<p><?php
echo $teamd;
?></p>
<h3>Dollar Amount</h3>
<p>?php echo $damountd; ?></p>
<h3>Car Count</h3>
<p><?php
echo $ccountd;
?></p>
<h3>Date</h3>
<p><?php
echo $dated;
?></p>
</div>
</div>
</head></html>
预期的结果是程序从数据库中提取数据,将其分配给变量,然后使用 echo 将其放置在 HTML 中的正确位置。
此时,当我在测试环境中运行代码时,我得到的只是一页代码,屏幕上没有日志或任何帮助,我卡住了,请帮助!
更新
我回去查看我为 php 下载的所有内容,并意识到我没有下载任何所需的额外组件。一旦我这样做了,我重新加载了页面,并得到了 500 错误,截图如下。
此外,我在 AWS 上启动了一个新环境,并让 php_info() 函数工作,但不是我的程序,我仍然得到 500 错误。当我检查日志时,我得到了这个:
[Fri Feb 01 19:21:20.163557 2019] [:error] [pid 14423] [client 73.169.82.233:63540] PHP 致命错误:未捕获的错误:调用 /var/www/html/index 中的未定义函数 php_info() .php:1\n堆栈跟踪:\n#0 {main}\n 在第 1 行的 /var/www/html/index.php 中抛出
解决方案
因此,由于这已经有一段时间了,我想我会大致解释一下我为解决这个问题所做的工作,希望它可以帮助以后遇到类似问题的其他人。
所以基本上我最终做了什么,根据这里个人的建议,我使用准备好的语句和占位符值来降低 SQL 注入错误的风险。之后,我在 PHP 中分配了我需要在 HTML 中使用的每个单独变量,以便稍后在构建模板文件时引用它。我知道这不是大多数人会推荐的方式,但我觉得它可以帮助我更多地收集我的想法并能够将事物可视化,然后我可以通过删除 PHP 变量分配部分来返回并优化代码将它们直接放入 HTML 中。
就我发布的错误而言,它归结为错误的代码。而且我必须做更多的研究以确保事情的结构正确。感谢所有给我建议和材料的人。
不过,如果您有任何问题,请告诉我,谢谢!
推荐阅读
- aerospike - 如何解决 Aerospike 错误,此时不允许操作?
- java - 如何使用 selenium webdriver 和 Java 从 kendo 下拉列表中选择一个选项
- python - 在 Python 中使用 JSON 响应 http 请求
- angular-material - 如何从输入中添加对角度材料的验证
- java - 如何在java中删除复选框的背景颜色
- javascript - 出现错误,因为生成命令需要在 Angular 项目中运行,但找不到项目定义
- linux-device-driver - 如何更改设备驱动程序中 module_param 参数的值?
- sql - 这个 TSQL V() 方法/语法/函数是什么?
- php - 警告:mysqli_stmt_close() 期望参数 1 为 mysqli_stmt,布尔值在第 66 行的 C:\xampp\htdocs\CS\update.php 中给出
- angular - 如何使用 Spring 和 Angular 将应用程序版本传递到前端?