PHP实现显示列表信息
数据库连接配置
创建 config.php 文件存储数据库连接信息:
<?php
$host = 'localhost'; // 数据库主机
$dbname = 'test_db'; // 数据库名
$username = 'root'; // 用户名
$password = 'password'; // 密码
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("数据库连接失败: " . $e->getMessage());
}
?>
查询数据并显示
创建 list.php 文件查询数据并以表格形式展示:
<?php
require 'config.php';
$stmt = $pdo->query("SELECT id, name, email FROM users");
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
<!DOCTYPE html>
<html>
<head>
<title>用户列表</title>
<style>
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
th { background-color: #f2f2f2; }
</style>
</head>
<body>
<table>
<tr>
<th>ID</th>
<th>姓名</th>
<th>邮箱</th>
</tr>
<?php foreach ($rows as $row): ?>
<tr>
<td><?php echo htmlspecialchars($row['id']); ?></td>
<td><?php echo htmlspecialchars($row['name']); ?></td>
<td><?php echo htmlspecialchars($row['email']); ?></td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>
分页功能实现
在 list.php 中增加分页逻辑:
<?php
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$perPage = 10;
$offset = ($page - 1) * $perPage;
$total = $pdo->query("SELECT COUNT(*) FROM users")->fetchColumn();
$totalPages = ceil($total / $perPage);
$stmt = $pdo->prepare("SELECT id, name, email FROM users LIMIT ? OFFSET ?");
$stmt->bindValue(1, $perPage, PDO::PARAM_INT);
$stmt->bindValue(2, $offset, PDO::PARAM_INT);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
<!-- 在表格后添加分页导航 -->
<div class="pagination">
<?php for ($i = 1; $i <= $totalPages; $i++): ?>
<a href="?page=<?php echo $i; ?>" <?php if ($i === $page) echo 'style="font-weight:bold"'; ?>>
<?php echo $i; ?>
</a>
<?php endfor; ?>
</div>
安全注意事项
- 使用
htmlspecialchars()防止 XSS 攻击。 - 通过
PDO预处理语句防止 SQL 注入。 - 分页参数通过
(int)强制类型转换确保安全。
扩展建议
- 添加搜索功能:在 SQL 中增加
WHERE条件过滤数据。 - 使用 AJAX 实现无刷新分页或动态加载。
- 结合前端框架(如 Vue.js)增强交互体验。







