You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现图片上传至SQL数据库的完整教程

实现POST请求上传图片并插入SQL数据库的完整方案

以下是通过PHP+PDO实现图片上传并将文件名存入MySQL数据库的具体步骤:

index.php 核心实现

1. 引入数据库连接文件

require "db.php";

2. 处理POST上传请求

添加请求方法判断,避免页面初始加载时执行上传逻辑:

if ($_SERVER["REQUEST_METHOD"] === "POST") {
    // 获取上传文件原始名称并移动到指定目录
    $image = $_FILES["image"]["name"];
    move_uploaded_file($_FILES["image"]["tmp_name"], "uploads/" . $image);

    // 预处理SQL插入语句,防止SQL注入
    $stmt = $sql->prepare("
        INSERT INTO db (image)
        VALUES (?)
    ");

    // 执行插入并重定向避免重复提交
    $stmt->execute([$image]);
    header("Location: index.php");
    exit;
}
?>

3. 查询数据库并展示已上传图片

执行查询获取所有图片记录,以关联数组形式返回:

<?php
$stmt = $sql->query("SELECT * FROM db");
$db = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

通过HTML表格结合PHP循环展示图片:

<table border="1">
  <tr>
        <th>图片</th>
    </tr>
<?php foreach ($db as $d): ?>
    <tr>
        <td>
            <img src="uploads/<?= $d["image"] ?>" width="80">
        </td>
    </tr>
<?php endforeach; ?>
</table>
</body>
</html>

必备的db.php数据库连接文件

使用PDO建立与MySQL的连接:

<?php
$sql = new PDO("mysql:host=localhost;dbname=db;charset=utf8mb4", "root", "root");
?>

补充提示:

  • 确保服务器上存在uploads目录并配置好读写权限
  • 建议新增文件类型、大小校验逻辑,防范恶意文件上传
  • 可对上传文件重命名,避免同名文件覆盖问题

内容的提问来源于stack exchange,提问作者Naim Hyun-woo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 18:57:25