上一篇
html网页嵌入数据库
- 行业动态
- 2025-04-26
- 2
HTML网页通过服务器端脚本(如PHP、Node.js)连接数据库,利用SQL语句操作数据,结合AJAX/Fetch实现前后端交互,动态渲染数据到页面,常用MySQL/MongoDB存储内容,通过API接口传输,确保网页与数据库
环境准备
步骤 | 说明 |
---|---|
选择数据库 | 常见选择:MySQL、SQLite(轻量级)、MongoDB(非关系型) |
安装后端环境 | Node.js + Express(JavaScript方案)或 PHP + Apache(传统方案) |
数据库驱动 | • Node.js 用 mysql 或 mongoose • PHP 用 PDO 或 mysqli |
后端设置(以Node.js为例)
文件结构 | 代码示例 |
---|---|
server.js | javascript<br>const express = require('express');<br>const mysql = require('mysql');<br>const app = express();<br>const db = mysql.createConnection({<br> host: 'localhost',<br> user: 'root',<br> password: '123456',<br> database: 'test_db'<br});<br>db.connect(err => {<br> if (err) throw err;<br> console.log('数据库连接成功');<br});<br>app.get('/api/data', (req, res) => {<br> let sql = 'SELECT FROM users';<br> db.query(sql, (err, results) => {<br;  if (err) throw err;<br>  res.json(results);<br> });<br});<br>app.listen(3000, () => console.log('服务器启动')); |
前端交互
技术方案 | 实现方式 |
---|---|
Fetch API | javascript<br>fetch('/api/data')<br> .then(response => response.json())<br> .then(data => {<br;  // 渲染到表格<br>  const table = document.getElementById('data-table');<br>  data.forEach(row => {<br;   const tr = table.insertRow();<br>   Object.values(row).forEach(text => {<br;    const td = tr.insertCell();<br>    td.textContent = text;<br>   });<br>  });<br> }); |
Axios + Vue | vue<br>mounted() {<br> axios.get('/api/data').then(res => {<br;  this.users = res.data;<br> });<br>}<br> |
数据展示(HTML表格)
元素 | 作用 | 示例代码 |
---|---|---|
<table> | 容器 | html<table id="data-table"><thead><tr><th>ID</th><th>姓名</th></tr></thead><tbody></tbody></table> |
<thead> | 表头 | html<th>年龄</th> |
<tbody> | 数据区 | JavaScript动态插入 |
安全性注意事项
风险 | 解决方案 |
---|---|
SQL注入 | 使用参数化查询(如占位符)或ORM框架 |
跨站脚本(XSS) | 进行HTML转义(如< 转成< ) |
跨域限制 | 后端设置Access-Control-Allow-Origin 响应头 |
相关问题与解答
问题1:如何在前端直接执行SQL语句?
解答:前端无法直接操作数据库,需通过后端API中转,例如用JavaScript发送DELETE
请求到/api/delete?id=123
,后端接收后执行DELETE FROM users WHERE id=123
,再返回操作结果。
问题2:数据库密码应该写在JS代码里吗?
解答:绝对禁止,正确做法:
- 使用环境变量(如
.env
文件)存储敏感信息 - 后端配置时读取(如
dotenv
模块):