首先,您应该检查 图像列是否为BLOB类型 !
我对您的SQL表一无所知,但是如果我尝试以自己的示例为例。
我们得到了 id
(int), image
(blob)和 image_name
(varchar(64))字段。
因此,代码应如下所示(假设ID始终为“ 1”,让我们使用此mysql_query):
$image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); //SQL Injection defence!$image_name = addslashes($_FILES['image']['name']);$sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')";if (!mysql_query($sql)) { // Error handling echo "Something went wrong! :("; }
您在许多方面都做错了。不要使用mysql函数-
不推荐使用!使用PDO或MySQLi。您还应该考虑在磁盘上存储文件位置。使用MySQL存储图像被认为是Bad
Idea™。用大数据(例如图像)处理SQL表可能会出现问题。
此外,您的HTML表单也不符合标准。它看起来应该像这样:
<form action="insert_product.php" method="POST" enctype="multipart/form-data"> <label>File: </label><input type="file" name="image" /> <input type="submit" /></form>
边注:
处理文件并将其存储为BLOB时,必须使用进行转义
mysql_real_escape_string(),否则将导致语法错误。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)