上一篇
html5链接数据库代码
- 行业动态
- 2025-05-09
- 4
“`php,,
环境准备
步骤 | 操作说明 |
---|---|
安装数据库 | 使用MySQL、PostgreSQL、SQLite等数据库,本文以MySQL为例。 |
创建数据库 | 在数据库中创建用于存储数据的表(如users 表)。 |
后端语言选择 | 使用PHP、Node.js等后端语言处理数据库连接与操作。 |
前端与后端交互 | 通过HTML表单或API接口传递数据。 |
数据库连接代码(PHP + MySQL)
<?php // 数据库配置 $host = 'localhost'; // 数据库主机 $dbname = 'test_db'; // 数据库名称 $username = 'root'; // 数据库用户名 $password = '123456'; // 数据库密码 // 创建PDO对象(推荐方式) try { $dsn = "mysql:host=$host;dbname=$dbname;charset=utf8"; $pdo = new PDO($dsn, $username, $password, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // 开启异常模式 PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC // 关联数组返回数据 ]); echo "数据库连接成功!"; } catch (PDOException $e) { die("数据库连接失败:" . $e->getMessage()); } ?>
前端HTML与后端交互
HTML表单提交数据
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8">用户注册</title> </head> <body> <form action="register.php" method="POST"> <label>用户名:<input type="text" name="username" required></label><br> <label>密码:<input type="password" name="password" required></label><br> <button type="submit">注册</button> </form> </body> </html>
PHP处理表单并写入数据库
<?php // 接收前端数据 $username = $_POST['username']; $password = $_POST['password']; // 实际使用需加密(如hash/bcrypt) // 插入数据到数据库 $sql = "INSERT INTO users (username, password) VALUES (?, ?)"; $stmt = $pdo->prepare($sql); // 预处理语句防SQL注入 $stmt->execute([$username, $password]); echo "用户注册成功!"; ?>
数据查询与展示(AJAX示例)
PHP查询接口
<?php // 查询所有用户 $sql = "SELECT FROM users"; $result = $pdo->query($sql); $users = $result->fetchAll(); // 返回JSON数据 header('Content-Type: application/json'); echo json_encode($users); ?>
HTML + JavaScript异步获取数据
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8">用户列表</title> <script> // 使用Fetch API获取数据 async function loadUsers() { const response = await fetch('get_users.php'); // PHP查询接口 const users = await response.json(); const table = document.getElementById('userTable'); users.forEach(user => { const row = table.insertRow(); row.insertCell().textContent = user.id; row.insertCell().textContent = user.username; }); } window.onload = loadUsers; </script> </head> <body> <h2>用户列表</h2> <table id="userTable" border="1"> <tr><th>ID</th><th>用户名</th></tr> </table> </body> </html>
常见问题与解答
问题1:如何选择数据库类型?
解答:
- 关系型数据库(MySQL/PostgreSQL):适合结构化数据(如用户表、订单表),支持复杂查询与事务。
- 非关系型数据库(MongoDB/Redis):适合非结构化数据(如日志、缓存),扩展性强。
- SQLite:适合小型项目或本地存储,无需独立数据库服务器。
问题2:如何防止SQL注入?
解答:
- 使用预处理语句:如PDO的
prepare()
和execute()
方法,自动转义用户输入。 - 参数化查询:避免直接拼接SQL语句,
$sql = "SELECT FROM users WHERE username = :username"; $stmt = $pdo->prepare($sql); $stmt->execute(['username' => $inputUsername]);