上一篇
html与数据库交互代码
- 行业动态
- 2025-05-07
- 4486
HTML需结合后端语言(如PHP/Python)实现与数据库交互:前端表单提交数据至后端,后端通过数据库驱动(如MySQLi/PDO)建立连接,执行SQL语句完成增删改查操作,再将结果渲染回HTML页面,典型流程包括参数校验、预编译防注入、事务处理及错误捕获,常用AJAX
数据库准备
首先需要创建一个数据库和数据表,用于存储HTML提交的数据。
操作 | SQL语句 | 说明 |
---|---|---|
创建数据库 | CREATE DATABASE my_database; | 新建数据库 |
使用数据库 | USE my_database; | 选择数据库 |
创建数据表 | <br>CREATE TABLE users (<br> id INT AUTO_INCREMENT PRIMARY KEY,<br> name VARCHAR(50),<br> email VARCHAR(50)<br>); | 包含ID、姓名、邮箱字段 |
HTML表单页面
创建一个简单的HTML表单用于提交数据。
<!DOCTYPE html> <html> <head>用户信息提交</title> </head> <body> <h2>用户注册表单</h2> <form action="process.php" method="post"> <label>姓名: <input type="text" name="name" required></label><br> <label>邮箱: <input type="email" name="email" required></label><br> <button type="submit">提交</button> </form> </body> </html>
PHP处理脚本
创建process.php
处理表单数据并与数据库交互。
<?php // 数据库配置 $host = 'localhost'; $username = 'root'; $password = ''; $dbname = 'my_database'; // 创建连接 $conn = new mysqli($host, $username, $password, $dbname); // 检查连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 获取表单数据 $name = $_POST['name']; $email = $_POST['email']; // 插入数据到数据库 $stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)"); $stmt->bind_param("ss", $name, $email); $stmt->execute(); $stmt->close(); // 查询所有用户数据 $result = $conn->query("SELECT FROM users"); echo "<h2>当前用户列表</h2>"; echo "<table border='1'><tr><th>ID</th><th>姓名</th><th>邮箱</th></tr>"; while ($row = $result->fetch_assoc()) { echo "<tr><td>{$row['id']}</td><td>{$row['name']}</td><td>{$row['email']}</td></tr>"; } echo "</table>"; $conn->close(); ?>
安全注意事项
风险类型 | 防范措施 | 示例代码 |
---|---|---|
SQL注入 | 使用预处理语句 | $stmt->prepare("INSERT...") |
数据验证 | 检查输入格式 | filter_var($email, FILTER_VALIDATE_EMAIL) |
错误处理 | 避免暴露数据库错误 | die("查询失败") 代替具体错误信息 |
常见问题与解答
Q1:如何实现数据的更新和删除功能?
A1:需要为每条数据添加编辑和删除按钮,通过GET传递记录ID,更新时使用UPDATE
语句,删除时使用DELETE
语句。
UPDATE users SET email='new@mail.com' WHERE id=1; DELETE FROM users WHERE id=2;
Q2:如何处理多条记录的批量导入?
A2:可以使用事务处理和循环插入。
$conn->begin_transaction(); foreach ($data as $item) { $stmt->bind_param("ss", $item['name'], $item['email'])->execute(); } $conn