首页 > 解决方案 > 在测试环境中,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 中抛出

标签: phphtmlmysql

解决方案


因此,由于这已经有一段时间了,我想我会大致解释一下我为解决这个问题所做的工作,希望它可以帮助以后遇到类似问题的其他人。

所以基本上我最终做了什么,根据这里个人的建议,我使用准备好的语句和占位符值来降低 SQL 注入错误的风险。之后,我在 PHP 中分配了我需要在 HTML 中使用的每个单独变量,以便稍后在构建模板文件时引用它。我知道这不是大多数人会推荐的方式,但我觉得它可以帮助我更多地收集我的想法并能够将事物可视化,然后我可以通过删除 PHP 变量分配部分来返回并优化代码将它们直接放入 HTML 中。

就我发布的错误而言,它归结为错误的代码。而且我必须做更多的研究以确保事情的结构正确。感谢所有给我建议和材料的人。

不过,如果您有任何问题,请告诉我,谢谢!


推荐阅读