上一篇
html连接mysql数据库代码
- 行业动态
- 2025-05-01
- 3174
HTML无法直连MySQL,需通过PHP/JSP等后端语言连接,如:
环境配置
要实现HTML与MySQL数据库的交互,需通过服务器端语言(如PHP、Python、Node.js)作为中间层,以下以PHP为例:
安装环境
- Apache/Nginx服务器
- PHP(建议7.4+)
- MySQL数据库
- 推荐使用集成环境:XAMPP、WAMP或MAMP
创建数据库和表
CREATE DATABASE test_db; USE test_db; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), email VARCHAR(50) );
PHP连接MySQL代码示例
数据库连接(推荐使用mysqli
扩展)
<?php $servername = "localhost"; // 数据库地址 $username = "root"; // 数据库用户名 $password = ""; // 数据库密码 $dbname = "test_db"; // 数据库名称 // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功"; ?>
插入数据(配合HTML表单)
HTML文件(form.html):
<form action="insert.php" method="post"> 姓名: <input type="text" name="name"><br> 邮箱: <input type="text" name="email"><br> <input type="submit" value="提交"> </form>
PHP处理文件(insert.php):
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "test_db"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } $name = $_POST['name']; $email = $_POST['email']; // 使用预处理语句防止SQL注入 $stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)"); $stmt->bind_param("ss", $name, $email); $stmt->execute(); echo "数据插入成功"; $stmt->close(); $conn->close(); ?>
查询数据并显示(配合HTML表格)
PHP文件(select.php):
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "test_db"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } $sql = "SELECT id, name, email FROM users"; $result = $conn->query($sql); echo "<table border='1'> <tr><th>ID</th><th>姓名</th><th>邮箱</th></tr>"; if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "<tr><td>".$row["id"]."</td><td>".$row["name"]."</td><td>".$row["email"]."</td></tr>"; } } else { echo "<tr><td colspan='3'>暂无数据</td></tr>"; } echo "</table>"; $conn->close(); ?>
关键知识点对比表
功能 | 代码示例 |
---|---|
连接数据库(mysqli) | new mysqli($servername, $username, $password, $dbname); |
插入数据(预处理) | $stmt = $conn->prepare("INSERT INTO table VALUES (?, ?)"); |
查询数据 | $result = $conn->query("SELECT FROM table"); |
防止SQL注入 | 使用prepare() 和bind_param() |
常见问题与解答
问题1:为什么HTML无法直接连接MySQL?
解答:
HTML是标记语言,仅负责页面结构和样式,不具备与数据库交互的能力,必须通过服务器端语言(如PHP、Python)或客户端脚本(如JavaScript)调用后端API,才能实现与数据库的通信。
问题2:mysqli
和PDO
有什么区别?应该选哪个?
解答:
| 对比项 | mysqli | PDO |
|——————|————————————–|————————————-|
| 支持数据库 | 仅MySQL | 支持多种数据库(MySQL、PostgreSQL等)|
| 语法风格 | 面向对象或过程 | 统一接口,支持预处理 |
| 安全性 | 内置预处理语句 | 更灵活的预处理和错误处理 |
| 适用场景 | 仅需操作MySQL时 | 需要兼容多数据库时 |
建议:
- 如果项目仅针对MySQL,
mysqli
更轻量; - 若需跨数据库兼容或复杂操作,优先