php - 使用 PHP 将 MySQL 嵌入到 HTML 超链接中
问题描述
我对 Web 开发和从头开始自学还很陌生。我正在通过一些练习来自学并让自己熟悉 PHP 和 MySQL 作为语言,并以一个简单的糖果店为例。我想制作一个页面,其中仅列出我的糖果名称和指向新页面的超链接,该页面会告诉您更多信息。我从头开始编写了以下代码,这在我的脑海中是有道理的,但其中一定隐藏了一个错误。如果有人能发现我的错误和/或对未来的注意事项提供任何提示,我将不胜感激。谢谢!
<?php //sweetshop.php
require_once 'login.php';
$conn = new mysqli($hn, $un, $pw, $db);
if ($conn->connect_error) die("Error Sweetshop.");
$query = "SELECT * FROM products";
$result = $conn->query($query);
if (!$result) die("Fatal Error");
$rows = $result->num_rows;
for ($j = 0; $j < $rows; ++$j)
{
$row = $result->fetch_array(MYSQLI_ASSOC);
?><a href="product?product_id=<?php echo htmlspecialchars($row['product_id'])?>"><?php echo htmlspecialchars($row['sweet'])?></a><br/><?
}
$result->close();
$conn->close();
?>
解决方案
我只是在你的代码片段中添加了易于使用的获取和打印选项,它就可以工作了。此外,使用die
ortry/catch
来处理你的MySQLi
andPHP
错误很难理解那里到底发生了什么。因此,在开发项目时配置PHP
和MySQLi
报告错误是必不可少的。
您可以在文件PHP
顶部MySQLi
使用以下行打开错误报告。PHP
ini_set('display_errors', 1);
error_reporting(E_ALL);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
这些行打印所有错误,例如;Uncaught mysqli_sql_exception: Table 'tevrakdb.prod5uct' doesn't exist in /var/..
或Fatal error: Uncaught mysqli_sql_exception: Access denied for user 'randomuser'@...
。为了更好地理解PHP
和MYSQL
错误,你可以看这里。
这是您的增强片段。
<?php
require_once 'login.php';
ini_set('display_errors', 1); //display errors on the screen
error_reporting(E_ALL); // All errors and warning
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); //Report errors and warnings from mysqli function calls
$conn = new mysqli($hn, $un, $pw, $db);
$query = "SELECT * FROM products";
$result = $conn->query($query);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) { ?>
<a href="product?product_id=<?php echo htmlspecialchars($row['product_id']); ?>">
<?php echo htmlspecialchars($row['product_name_lang_1']); ?>
</a><br/>
<?php
}
}
$result->close();
$conn->close();
?>
顺便说一句,我建议不要忘记内联 php 代码中的分号结尾。
推荐阅读
- android - 为什么 tensorflow lite 示例在向数组添加像素值时使用 image_mean 和 image_std?
- javascript - JavaScript 中 event.keyCode 的国际标准?
- php - 为什么我收到 PHP Invalid JWT provided 错误?
- reactjs - 如何通过单击菜单按钮不更改地址。只交换屏幕上的一个组件?
- javascript - NodeJS 和 Retrofit 的多部分数据问题
- python - Python - 尝试除外
- azure - 您能否将应用服务日志或应用程序洞察日志摄取到 azure 事件中心
- c# - ObjectListView 在 SetObjects() 上抛出 InvalidCastException
- python - Teradataml:删除由 Teradata MLE 函数创建的所有临时表
- mysql - 如何确保单元测试原则正试图加载到与 dev 相同的数据库?