问题:
您正在尝试将图像存储在MySQL 数据库,但程序未插入图像data.
提供的代码摘录:
$file = $_FILES['image']['tmp_name']; ... if ($image_query = mysql_query ("insert into product_images values (1,'$image_name',$image )")) { ... }
错误消息:
您的 SQL 中有错误句法;检查与您的 MySQL 服务器版本对应的手册以获取正确的语法。
解决方案:
1.确保图像列为 BLOB 类型:
验证用于存储图像的列是否为 BLOB 数据类型。
2.清理输入数据:
使用 MySQLi 函数处理 SQL 查询并转义输入数据中的特殊字符以防止 SQL 注入。
更正的代码(假设 ID 始终为“1”) ):
$image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); $image_name = addslashes($_FILES['image']['name']); $query = "INSERT INTO product_images (id, image, image_name) VALUES ('1', '{$image}', '{$image_name}')"; if (mysqli_query($conn, $query)) { ... }
3.更新 HTML 表单:
HTML 表单应更新为使用正确的 enctype 属性来上传文件:
<form action="insert_product.php" method="POST" enctype="multipart/form-data"> <input type="file" name="image" /> <input type="submit" /> </form>
4.在磁盘上存储文件(可选):
考虑将图像文件存储在磁盘上,而不是使用 MySQL 数据库来存储大量数据。这可以提高性能并减少数据库负载。
以上是如何使用 PHP 正确地将图像插入 MySQL 数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!