基于PHP PDO的网站如何展示数据库全部记录及配置说明
实现PHP PDO展示数据库全部记录的方案
没问题,我来帮你快速搞定这个需求!下面是完整的步骤和代码实现:
1. 完善config.php的数据库配置
首先得把你的配置文件补全数据库连接信息,不然PDO没法连上数据库。补充后的代码如下:
<?php date_default_timezone_set('Europe/Amsterdam'); error_reporting(E_ALL & ~ E_DEPRECATED); ini_set('display_errors', 'ON'); $CONFIG = array(); $CONFIG['root'] = '/home/tom/public_html'; $CONFIG['rootwebsite'] = '/home/tom/public_html'; // 添加数据库核心连接参数 $CONFIG['db_host'] = 'localhost'; // 数据库主机,默认一般是localhost $CONFIG['db_name'] = 'your_database_name'; // 替换成你实际的数据库名称 $CONFIG['db_user'] = 'your_db_username'; // 替换成你的数据库用户名 $CONFIG['db_pass'] = 'your_db_password'; // 替换成你的数据库密码
2. 创建记录展示页面(比如show_records.php)
这个页面会负责连接数据库、拉取所有记录,并用友好的表格形式展示出来,代码如下:
<?php // 引入配置文件 require_once 'config.php'; try { // 初始化PDO连接,开启异常模式方便调试错误 $dsn = "mysql:host={$CONFIG['db_host']};dbname={$CONFIG['db_name']};charset=utf8mb4"; $pdo = new PDO($dsn, $CONFIG['db_user'], $CONFIG['db_pass']); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 替换成你要查询的目标表名,比如这里用`your_target_table` $targetTable = 'your_target_table'; // 查询表中所有记录 $stmt = $pdo->query("SELECT * FROM $targetTable"); // 以关联数组形式获取所有结果 $allRecords = $stmt->fetchAll(PDO::FETCH_ASSOC); ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>数据库记录总览</title> <style> table { border-collapse: collapse; width: 90%; margin: 20px auto; } th, td { border: 1px solid #ddd; padding: 10px; text-align: left; } th { background-color: #f5f5f5; font-weight: bold; } tr:nth-child(even) { background-color: #fafafa; } h1 { text-align: center; color: #333; } </style> </head> <body> <h1>数据库全部记录展示</h1> <?php if (!empty($allRecords)): ?> <table> <!-- 自动生成表头 --> <tr> <?php foreach (array_keys($allRecords[0]) as $columnName): ?> <th><?php echo htmlspecialchars($columnName); ?></th> <?php endforeach; ?> </tr> <!-- 遍历输出每一行数据 --> <?php foreach ($allRecords as $row): ?> <tr> <?php foreach ($row as $value): ?> <td><?php echo htmlspecialchars($value); ?></td> <?php endforeach; ?> </tr> <?php endforeach; ?> </table> <?php else: ?> <p style="text-align:center; color:#666;">当前数据库表中没有任何记录</p> <?php endif; ?> </body> </html> <?php } catch (PDOException $e) { // 捕获并输出数据库操作错误 die("数据库操作出错: " . $e->getMessage()); } // 手动关闭连接(可选,脚本结束时会自动释放) $pdo = null; ?>
3. 几个关键提醒
- 安全防护:代码里用了
htmlspecialchars()来转义输出内容,避免XSS攻击;如果需要动态切换表名,一定要做严格的输入验证,防止SQL注入风险。 - 字符集设置:DSN里指定
charset=utf8mb4可以支持所有Unicode字符(包括emoji),避免出现乱码问题。 - 异常模式:开启PDO的异常模式后,任何数据库操作错误都会抛出异常,比传统的错误提示更便于调试和定位问题。
内容的提问来源于stack exchange,提问作者Tomishotttieee
相关产品推荐
相关产品推荐

