当前位置:首页 > 行业动态 > 正文

html链接数据库代码

php,,

数据库配置与连接基础

HTML 本身无法直接连接数据库,需通过服务器端语言(如 PHP、Node.js、Python)实现,以下以 PHP + MySQL 为例演示流程。

数据库准备

步骤 操作
创建数据库 CREATE DATABASE test_db;
创建表 “`sql
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
email VARCHAR(50)
“`
插入数据 “`sql
INSERT INTO users (name, email) VALUES
(‘Alice’, ‘alice@example.com’),
(‘Bob’, ‘bob@example.com’);
“`

服务器端代码(PHP 示例)

<?php
// db_config.php(数据库配置)
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', 'password');
define('DB_NAME', 'test_db');
?>
<?php
// fetch_data.php(获取数据)
include 'db_config.php';
// 创建连接
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
// 执行查询
$sql = "SELECT  FROM users";
$result = $conn->query($sql);
// 输出数据(JSON格式)
$users = [];
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $users[] = $row;
    }
}
echo json_encode($users);
$conn->close();
?>

前端 HTML 展示数据

<!DOCTYPE html>
<html>
<head>用户列表</title>
    <script>
        // 通过 AJAX 获取数据
        function loadData() {
            fetch('fetch_data.php')
                .then(response => response.json())
                .then(data => {
                    const tableBody = document.getElementById('table-body');
                    tableBody.innerHTML = ''; // 清空现有内容
                    data.forEach(user => {
                        const row = document.createElement('tr');
                        row.innerHTML = `<td>${user.id}</td><td>${user.name}</td><td>${user.email}</td>`;
                        tableBody.appendChild(row);
                    });
                });
        }
        window.onload = loadData; // 页面加载时自动获取数据
    </script>
</head>
<body>
    <h2>用户信息</h2>
    <table border="1">
        <thead>
            <tr><th>ID</th><th>姓名</th><th>邮箱</th></tr>
        </thead>
        <tbody id="table-body">
            <!-数据由 JavaScript 动态填充 -->
        </tbody>
    </table>
</body>
</html>

技术对比与扩展

技术栈 特点 适用场景
PHP + MySQL 简单易用,广泛支持 小型网站、快速开发
Node.js + MySQL 异步非阻塞,高并发支持 实时应用、API服务
Python + SQLite 轻量级,无需额外数据库服务器 桌面应用、原型设计
Java + PostgreSQL 企业级稳定性,复杂查询优化 大型系统、高可靠性需求

注意事项

  1. 安全性
    • 使用 prepared statements 防止 SQL 注入。
    • 避免在代码中硬编码数据库密码,建议使用配置文件或环境变量。
  2. 错误处理
    • 检查数据库连接状态(如 $conn->connect_error)。
    • 对查询结果进行空值判断(如 $result->num_rows)。
  3. 性能优化
    • 对高频查询添加索引(如 ALTER TABLE users ADD INDEX (name);)。
    • 分页加载数据(如 LIMIT 0, 10)。

相关问题与解答

问题 1:如何防止 SQL 注入?

解答
使用 预处理语句(Prepared Statements)

$stmt = $conn->prepare("SELECT  FROM users WHERE email = ?");
$stmt->bind_param("s", $email); // "s" 表示字符串类型参数
$stmt->execute();
$result = $stmt->get_result();

此方法将参数与 SQL 语句分离,避免反面代码注入。

问题 2:如何在不同环境下配置数据库连接

解答

  1. 本地开发:使用 localhost 作为主机,配置本地数据库(如 XAMPP、MAMP)。
  2. 生产环境
    • 使用远程数据库服务器 IP 或域名(如 DB_HOST = '192.168.1.100')。
    • 为安全性,限制数据库用户权限(如仅允许特定 IP 访问)。
    • 通过环境变量管理敏感信息(如 DB_PASS),避免硬编码
0