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
相关产品推荐
相关产品推荐

