要将动态HTML表中的数据保存到MySQL数据库中,通常需要以下几个步骤:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Save Data</title>
</head>
<body>
<form id="dataForm">
<input type="text" name="username" placeholder="Username">
<input type="email" name="email" placeholder="Email">
<button type="submit">Submit</button>
</form>
<script src="script.js"></script>
</body>
</html>
document.getElementById('dataForm').addEventListener('submit', function(event) {
event.preventDefault();
const formData = new FormData(this);
fetch('/save-data', {
method: 'POST',
body: formData
}).then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
});
const express = require('express');
const bodyParser = require('body-parser');
const mysql = require('mysql');
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
const db = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});
db.connect(err => {
if (err) throw err;
console.log('Connected to MySQL database!');
});
app.post('/save-data', (req, res) => {
const { username, email } = req.body;
const sql = 'INSERT INTO users (username, email) VALUES (?, ?)';
db.query(sql, [username, email], (err, result) => {
if (err) return res.status(500).send(err);
res.json({ message: 'Data saved successfully!' });
});
});
app.listen(3000, () => console.log('Server running on port 3000'));
原因:可能是数据库配置错误或数据库服务未启动。 解决方法:检查数据库配置信息,确保数据库服务正在运行。
原因:直接拼接SQL语句可能导致SQL注入攻击。 解决方法:使用参数化查询或ORM工具(如Sequelize)来避免SQL注入。
原因:前端和后端都应进行数据验证,以防止无效或恶意数据。 解决方法:在前端使用HTML5验证,在后端使用适当的验证库(如Joi或express-validator)。
通过上述步骤,你可以有效地将动态HTML表中的数据安全地保存到MySQL数据库中。
领取专属 10元无门槛券
手把手带您无忧上云