如何在网站中通过HTML实现数据库访问与数据展示?
<?php
$servername = "localhost";
$username = "数据库用户名";
$password = "数据库密码";
$dbname = "数据库名";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
?>
执行查询并输出数据到HTML
<?php $sql = "SELECT id, name, email FROM users"; $result = $conn->query($sql); if ($result->num_rows > 0) { echo "<table class='data-table'>"; echo "<tr><th>ID</th><th>姓名</th><th>邮箱</th></tr>"; while($row = $result->fetch_assoc()) { echo "<tr> <td>" . htmlspecialchars($row["id"]) . "</td> <td>" . htmlspecialchars($row["name"]) . "</td> <td>" . htmlspecialchars($row["email"]) . "</td> </tr>"; } echo "</table>"; } else { echo "<p>暂无数据</p>"; } $conn->close(); ?>
前端样式优化
通过CSS增强数据展示的可读性:
.data-table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
}
.data-table th, .data-table td {
border: 1px solid #ddd;
padding: 12px;
text-align: left;
}
.data-table tr:nth-child(even) {
background-color: #f9f9f9;
}
安全与最佳实践
-
防止SQL注入
- 使用预处理语句(Prepared Statements)替代直接拼接SQL。
$stmt = $conn->prepare("SELECT id, name FROM users WHERE email = ?"); $stmt->bind_param("s", $email); $stmt->execute();
- 使用预处理语句(Prepared Statements)替代直接拼接SQL。
-
数据过滤与验证
- 对用户输入使用
filter_var()
或正则表达式验证(如邮箱格式)。 - 输出到HTML时,用
htmlspecialchars()
转义特殊字符,避免XSS攻击。
- 对用户输入使用
-
错误处理
- 生产环境中隐藏详细错误信息,避免暴露敏感数据:
error_reporting(0); ini_set('display_errors', 0);
- 生产环境中隐藏详细错误信息,避免暴露敏感数据:
符合E-A-T原则的优化建议
-
专业性
- 使用权威技术栈(如PHP官方推荐的MySQLi或PDO扩展)。
- 遵循W3C标准编写HTML,确保代码可访问性(如ARIA标签)。
-
权威性
- 引用官方文档(如PHP手册)作为技术依据。
- 使用HTTPS协议保护数据传输,增强用户信任。
-
可信度
- 在隐私政策中声明数据使用规范。
- 定期更新服务器和数据库版本,修复安全漏洞。
扩展方案
-
API化数据交互
使用RESTful API(如Node.js + Express)分离前后端,通过JavaScript(Fetch API或Ajax)动态加载数据。 -
性能优化
- 数据库缓存(如Redis)
- 分页查询(LIMIT/OFFSET)
引用说明
- MySQL官方文档:https://dev.mysql.com/doc/
- OWASP安全指南:https://owasp.org/www-community/
- MDN Web技术文档:https://developer.mozilla.org/