HTML页面连接数据库的实现方法
技术选型
类别 | 常用技术 | 适用场景 |
---|---|---|
后端语言 | PHP、Node.js、Python、Java、ASP.NET | 根据项目需求和技术栈选择 |
数据库类型 | MySQL、PostgreSQL、SQLite、MongoDB | 关系型数据库(MySQL)或非关系型(MongoDB) |
通信方式 | AJAX、Fetch API、WebSocket | 异步请求或实时通信 |
核心步骤(以PHP+MySQL为例)
-
环境准备
<?php
// 数据库配置
$host = 'localhost';
$user = 'root';
$password = '123456';
$dbname = 'test_db';
// 创建连接
try {
$conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "连接成功";
} catch (PDOException $e) {
echo "连接失败: " . $e->getMessage();
}
?> -
前端与后端交互
<form action="process.php" method="POST">
<input type="text" name="username" placeholder="用户名">
<button type="submit">提交</button>
</form> - 后端处理数据(process.php)
<?php $username = $_POST['username']; // 插入数据库 $stmt = $conn->prepare("INSERT INTO users (username) VALUES (?)"); $stmt->execute([$username]); echo "数据插入成功"; ?>
其他技术实现对比
技术栈 | 代码示例 | 特点 |
---|---|---|
Node.js+MySQL | “`javascript |
const mysql = require('mysql');
const connection = mysql.createConnection({host: 'localhost', user: 'root', password: '123456', database: 'test_db'});
connection.connect();
``` | 异步编程,适合高并发场景 |
| Python+SQLite| “`python
import sqlite3
conn = sqlite3.connect(‘test.db’)
cursor = conn.cursor()
cursor.execute(“CREATE TABLE users (id INTEGER PRIMARY KEY, username TEXT)”)
| Java+JDBC | ```java
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_db", "root", "123456");
``` | 强类型语言,适合企业级应用 |
---
# 四、前端动态展示数据
1. AJAX请求示例(Fetch API)
```javascript
fetch('/api/users.php')
.then(response => response.json())
.then(data => {
const table = document.createElement('table');
data.forEach(user => {
const row = table.insertRow();
row.insertCell().textContent = user.id;
row.insertCell().textContent = user.username;
});
document.body.appendChild(table);
});
- 后端返回JSON数据(users.php)
<?php header('Content-Type: application/json'); $stmt = $conn->query("SELECT FROM users"); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); echo json_encode($result); ?>
相关问题与解答
问题1:如何选择前端与数据库的通信方式?
解答:
// 正确写法(PDO)
$stmt = $conn->prepare("SELECT FROM users WHERE id = ?");
$stmt->execute([$userId]);
// 错误示范(高风险) $sql = "SELECT FROM users WHERE id = " . $_GET['id'];