【发布时间】:2020-03-06 18:31:40
【问题描述】:
所以我在一个网站上工作,我需要从 MySQL 服务器中提取数据并将其显示在网页上。我编写了一个简单的 PHP 脚本来根据 URL 中传递的参数从数据库中读取数据,它工作得很好。
这是脚本:
<?php
function updator($item)
{
$servername = "localhost";
$username = "yaddvirus";
$password = "password";
$dbname = "database";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
$table = "inventory";
//$item = "Rose Almonds";
$sql = "SELECT * FROM $table WHERE item = '$item'";
$result = $conn->query($sql);
while($data=$result->fetch_assoc()){
echo "<h1>{$data['item']}</h1><br>";
echo "<h1>{$data['item_desc']}</h1><br>";
echo "<h1>{$data['price125']}</h1><br>";
echo "<h1>{$data['price250']}</h1><br>";
}
//echo "0 results";
$conn->close();
}
if (defined('STDIN')) {
$item = $argv[1];
} else {
$item = $_GET['item'];
}
//$item = "Cherry";
updator($item);
?>
此脚本完全按预期工作。我使用http://nutsnboltz.com/tester.php?item=itemname 调用它,它可以很好地提取和显示数据。
P.S 你可以用 Cherry 或 Blueberry 作为物品来测试一下。
问题是,当我试图将这些数据放入我的 productpage.php 文件时,我无法让数据显示出来。文件层次结构如下:
<php
*Exact same php script as above*
?>
<html>
<head>
Header and navbar come here
</head>
<body>
<div class="container-fluid">
<div class="row">
<div class="col-4">
<h1> RANDOM TEXT BEFORE </h1>
<?php
while($data=$result->fetch_assoc()){
echo "<h1>{$data['item']}</h1><br>";
echo "<h1>{$data['item_desc']}</h1><br>";
echo "<h1>{$data['price125']}</h1><br>";
echo "<h1>{$data['price250']}</h1><br>";
}
?>
</div>
<div class="col-8">
<H!> MORE RANDOM TEXT</h1>
</div>
</div>
</div>
</body>
<footer>
footer here
scripts etc
</footer>
</html>
因此,页脚上方的脚本可以很好地打印所有内容。但是,在 HTML 所在的位置,在 PHP 代码之后没有打印任何内容。它只显示我的导航栏和 H1 标签,上面写着“RANDOM TEXT BEFORE”,仅此而已。我的页脚与其他所有内容一起消失了。
这究竟是什么问题,我该如何解决?
【问题讨论】:
-
你确定你的开始标签是正确的,因为你在第二个脚本中有
<php。 -
我知道
mysqli_connect()是mysqli::__construct()的别名,但事实上您在程序 (mysqli_connect) 和 OOP 样式 ($conn->query()) 中都使用mysqli边缘的牙齿......这不应该导致你的错误。你的错误听起来像是一个致命的 PHP 错误(它死了,所以你松开了页脚等),没有任何错误报告 - switch on error reporting 看看它说了什么。 -
@NigelRen 标签很好。我刚刚检查过。
-
@CD001 我完全理解你的畏惧,但目前我真的只需要启动并运行它。此外,我很确定它不会导致任何错误。
-
是的,但是您的页脚和
while($data=$result->fetch_assoc()){下面的所有其他内容都丢失了暗示那里存在致命错误......它可能像@987654332 这样简单@ 返回false- 所以$result然后是false所以$result->fetch_assoc()正试图调用一个布尔值和可怕的死亡。您需要打开display_errors或查看日志以了解究竟出了什么问题。
标签: php html mysql twitter-bootstrap e-commerce