html链接数据库代码
- 行业动态
- 2025-04-25
- 1
“
php,,
“
数据库配置与连接基础
HTML 本身无法直接连接数据库,需通过服务器端语言(如 PHP、Node.js、Python)实现,以下以 PHP + MySQL 为例演示流程。
数据库准备
步骤 | 操作 |
---|---|
创建数据库 | CREATE DATABASE test_db; |
创建表 | “`sql |
CREATE TABLE users ( | |
id INT PRIMARY KEY AUTO_INCREMENT, | |
name VARCHAR(50), | |
email VARCHAR(50) | |
“` | |
插入数据 | “`sql |
INSERT INTO users (name, email) VALUES | |
(‘Alice’, ‘alice@example.com’), | |
(‘Bob’, ‘bob@example.com’); | |
“` |
服务器端代码(PHP 示例)
<?php // db_config.php(数据库配置) define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PASS', 'password'); define('DB_NAME', 'test_db'); ?>
<?php // fetch_data.php(获取数据) include 'db_config.php'; // 创建连接 $conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); // 检查连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 执行查询 $sql = "SELECT FROM users"; $result = $conn->query($sql); // 输出数据(JSON格式) $users = []; if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $users[] = $row; } } echo json_encode($users); $conn->close(); ?>
前端 HTML 展示数据
<!DOCTYPE html> <html> <head>用户列表</title> <script> // 通过 AJAX 获取数据 function loadData() { fetch('fetch_data.php') .then(response => response.json()) .then(data => { const tableBody = document.getElementById('table-body'); tableBody.innerHTML = ''; // 清空现有内容 data.forEach(user => { const row = document.createElement('tr'); row.innerHTML = `<td>${user.id}</td><td>${user.name}</td><td>${user.email}</td>`; tableBody.appendChild(row); }); }); } window.onload = loadData; // 页面加载时自动获取数据 </script> </head> <body> <h2>用户信息</h2> <table border="1"> <thead> <tr><th>ID</th><th>姓名</th><th>邮箱</th></tr> </thead> <tbody id="table-body"> <!-数据由 JavaScript 动态填充 --> </tbody> </table> </body> </html>
技术对比与扩展
技术栈 | 特点 | 适用场景 |
---|---|---|
PHP + MySQL | 简单易用,广泛支持 | 小型网站、快速开发 |
Node.js + MySQL | 异步非阻塞,高并发支持 | 实时应用、API服务 |
Python + SQLite | 轻量级,无需额外数据库服务器 | 桌面应用、原型设计 |
Java + PostgreSQL | 企业级稳定性,复杂查询优化 | 大型系统、高可靠性需求 |
注意事项
- 安全性:
- 使用
prepared statements
防止 SQL 注入。 - 避免在代码中硬编码数据库密码,建议使用配置文件或环境变量。
- 使用
- 错误处理:
- 检查数据库连接状态(如
$conn->connect_error
)。 - 对查询结果进行空值判断(如
$result->num_rows
)。
- 检查数据库连接状态(如
- 性能优化:
- 对高频查询添加索引(如
ALTER TABLE users ADD INDEX (name);
)。 - 分页加载数据(如
LIMIT 0, 10
)。
- 对高频查询添加索引(如
相关问题与解答
问题 1:如何防止 SQL 注入?
解答:
使用 预处理语句(Prepared Statements),
$stmt = $conn->prepare("SELECT FROM users WHERE email = ?"); $stmt->bind_param("s", $email); // "s" 表示字符串类型参数 $stmt->execute(); $result = $stmt->get_result();
此方法将参数与 SQL 语句分离,避免反面代码注入。
问题 2:如何在不同环境下配置数据库连接?
解答:
- 本地开发:使用
localhost
作为主机,配置本地数据库(如 XAMPP、MAMP)。 - 生产环境:
- 使用远程数据库服务器 IP 或域名(如
DB_HOST = '192.168.1.100'
)。 - 为安全性,限制数据库用户权限(如仅允许特定 IP 访问)。
- 通过环境变量管理敏感信息(如
DB_PASS
),避免硬编码
- 使用远程数据库服务器 IP 或域名(如