使用 PHP 将图像上传到 MySQL 数据库
使用 PHP 将图像插入到 MySQL 数据库需要几个步骤。让我们解决您提供的代码中的问题:
1。数据库表结构:
确保您的数据库表有一列定义为 BLOB 或 MEDIUMBLOB 类型来存储图像数据。
2.准备好的语句:
不要使用已弃用的 mysql_query() 函数,而是使用 PDO 或 MySQLi 切换到准备好的语句。准备好的语句可以防止 SQL 注入漏洞。
3.正确的图像处理:
当前代码直接从临时文件中检索图像数据。这是一个安全风险。相反,应将 file_get_contents() 与 FILE_BINARY 选项结合使用,以确保正确处理二进制内容。
4.清理:
使用addslashes()或mysqli_real_escape_string()清理图像数据以防止SQL注入。
5.正确的插入查询:
插入查询应与表结构匹配并相应地清理数据。这是更正后的版本:
$stmt = $mysqli->prepare("INSERT INTO product_images (id, image, image_name) VALUES (?, ?, ?)"); $stmt->bind_param("sis", 1, $image, $image_name); $image = file_get_contents($_FILES['image']['tmp_name'], FILE_BINARY); $image_name = addslashes($_FILES['image']['name']); if ($stmt->execute()) { echo "Image uploaded successfully"; } else { echo "Error: " . $mysqli->error; }
6。 HTML 表单:
HTML 表单应使用 enctype="multipart/form-data" 属性,该属性允许在请求中传输二进制数据。此外,为
以上是如何使用 PHP 正确地将图像上传到 MySQL 数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!