要使用HTML连接MySQL数据库,您需要创建一个后端服务器来处理HTML表单提交的数据并与MySQL数据库交互
mkdir my_project
cd my_project
npm init -ynpm install express mysql body-parser ejs这将安装Express(用于创建Web服务器),MySQL(用于连接MySQL数据库),body-parser(用于解析请求正文)和EJS(用于渲染HTML模板)。
app.js的文件,并添加以下代码:const express = require('express');
const bodyParser = require('body-parser');
const mysql = require('mysql');
const ejs = require('ejs');
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.set('view engine', 'ejs');
// 创建MySQL连接
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});
connection.connect((err) => {
if (err) throw err;
console.log('Connected to MySQL database!');
});
// 创建一个简单的HTML表单
app.get('/', (req, res) => {
res.render('index', { title: 'Connect MySQL' });
});
// 处理表单提交的数据
app.post('/submit', (req, res) => {
const { name, email } = req.body;
const query = 'INSERT INTO users (name, email) VALUES (?, ?)';
connection.query(query, [name, email], (err, results) => {
if (err) throw err;
res.send('Data inserted successfully!');
});
});
// 启动服务器
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});请确保将your_username,your_password和your_database替换为您的MySQL数据库的实际凭据。
views的文件夹,并在其中创建一个名为index.ejs的文件。添加以下HTML代码:<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><%= title %></title>
</head>
<body>
<h1>Connect MySQL with HTML</h1>
<form action="/submit" method="post">
<label for="name">Name:</label>
<input type="text" id="name" name="name" required>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
<button type="submit">Submit</button>
</form>
</body>
</html>users的表,包含id,name和email字段:CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL
);node app.js现在,您可以在浏览器中访问http://localhost:3000,看到一个简单的HTML表单。提交表单后,数据将插入到MySQL数据库的users表中。