使用PHP将MySQL嵌入HTML超链接
我对网络开发和从头开始自学是相当陌生的。 我正在进行一些练习来自学,并以一个简单的糖果店为例,熟悉PHP和MySQL作为语言。我想制作一个网页,其中只列出我的糖果的名称和超链接到一个新的网页,告诉你更多的信息。我从头开始编写了下面的代码,这在我的脑海中是有意义的,但其中肯定隐藏着一个错误。如果有人能发现我的错误和/或给出今后需要注意的提示,我将不胜感激。谢谢使用PHP将MySQL嵌入HTML超链接,php,mysql,mysqli,Php,Mysql,Mysqli,我对网络开发和从头开始自学是相当陌生的。 我正在进行一些练习来自学,并以一个简单的糖果店为例,熟悉PHP和MySQL作为语言。我想制作一个网页,其中只列出我的糖果的名称和超链接到一个新的网页,告诉你更多的信息。我从头开始编写了下面的代码,这在我的脑海中是有意义的,但其中肯定隐藏着一个错误。如果有人能发现我的错误和/或给出今后需要注意的提示,我将不胜感激。谢谢 <?php //sweetshop.php require_once 'login.php'; $conn = ne
<?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
或try/catch
来处理您的MySQLi
和PHP
错误很难理解那里到底发生了什么。因此,在开发项目时,配置PHP
和MySQLi
以报告错误是至关重要的
您可以在PHP
和MySQLi
文件顶部的下面几行打开错误报告
ini_set('display_errors', 1);
error_reporting(E_ALL);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
这些行打印所有错误,如Uncaught mysqli\u sql\u异常:表'tevrakdb.prod5uct'在/var/中不存在。
或致命错误:Uncaught mysqli\u sql\u异常:用户'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代码中行的分号结尾。谢谢你的评论@Dharman我已经按照你说的方式编辑了我的答案。我将在短时间内发布它。@Dharman我用我的示例数据库中的一些记录尝试了这个片段。使用此功能打印时,5条不同字符的记录和一个样本失败。只要试一下我在回答中给出的字符串,并将其交给htmlspecialschars。@Dharman okey我会尽快查找和编辑。第一个错误是
新建mysqli
。如果不是真正的数据库库,使用PDO会更好。第二个错误是从product_id=“”所在的产品中执行$query=“选择*”$_获取[“产品标识”]代码>所以不要这样做!