HTML是超文本标记语言,本身仅负责页面的结构和内容展示,不具备直接连接数据库的能力,也无法直接处理数据库中的数据类型。要实现HTML页面和数据库的交互,需要借助后端服务作为中间层,完成数据库的连接、数据查询以及数据类型的转换传递。

HTML连接数据库的正确实现逻辑
HTML页面要获取或操作数据库数据,完整的流程分为三个部分:
- 前端HTML页面通过JavaScript发起HTTP请求,向后端服务传递参数
- 后端服务接收请求后,使用对应语言的数据库驱动连接数据库,执行查询、新增、修改等操作
- 后端将数据库返回的结果处理为前端可识别的格式,再响应给HTML页面进行展示
后端连接数据库的示例代码(以Node.js为例)
Node.js环境下可以使用mysql2库连接MySQL数据库,示例代码如下:
// 引入mysql2库
const mysql = require('mysql2/promise');
// 创建数据库连接配置
const dbConfig = {
host: '127.0.0.1',
user: 'root',
password: '123456',
database: 'test_db'
};
// 查询数据库数据的函数
async function queryUserData(userId) {
// 建立数据库连接
const connection = await mysql.createConnection(dbConfig);
// 执行查询语句,获取用户数据
const [rows] = await connection.execute(
'SELECT id, name, age, create_time FROM user WHERE id = ?',
[userId]
);
// 关闭连接
await connection.end();
return rows;
}
数据库数据类型在前端的处理规则
数据库中的不同数据类型传递到HTML页面时,需要经过后端转换,常见的类型对应关系如下:
| 数据库常见类型 | 后端传递的JSON格式类型 | 前端JavaScript对应类型 |
|---|---|---|
| INT、BIGINT | 数字 | Number |
| VARCHAR、TEXT | 字符串 | String |
| DATE、DATETIME | 字符串(或时间戳数字) | String(或Date对象) |
| DECIMAL | 字符串(避免精度丢失) | String(或转为Number) |
| BOOLEAN | 布尔值 | Boolean | >
前端接收数据并展示的示例
前端通过fetch请求获取后端数据后,处理不同数据类型并展示到HTML页面中:
// 发起请求获取用户数据
fetch('/api/user?id=1')
.then(res => res.json())
.then(data => {
if (data.length > 0) {
const user = data[0];
// 处理DATETIME类型的时间,转为本地时间字符串
const createTime = new Date(user.create_time).toLocaleString();
// 将内容插入到HTML元素中
document.getElementById('user-name').innerText = user.name; // VARCHAR类型,直接展示
document.getElementById('user-age').innerText = user.age; // INT类型,直接展示
document.getElementById('user-time').innerText = createTime; // 时间类型处理后展示
}
});
常见注意事项
- 不要尝试在HTML中直接写入数据库连接信息,会导致敏感信息泄露
- DECIMAL类型的金额数据,后端传递时建议用字符串格式,前端避免直接做浮点运算,防止精度丢失
- 数据库的NULL值在JSON中通常会转为null,前端需要做非空判断再使用,避免报错
- 日期类型数据如果后端返回时间戳,前端可以用
new Date(时间戳)转为Date对象后再格式化展示
注意:HTML本身没有连接数据库的能力,所有涉及数据库的操作都必须通过后端完成,前端只负责数据的展示和请求的发起。