验证多个文件输入mysql查询

时间:2012-06-18 06:26:04

标签: php mysql

我的情况是这样的:

<input type="file" name="image[]" />
<input type="file" name="image[]" />
<input type="file" name="image[]" />
<input type="file" name="image[]" />

我的数据库字段表是:

ID = 1
image1 = image1.jpg
image2 = image2.jpg
image3 = image3.jpg
image4 = image4.jpg

假设行id = 1已经预先插入了值,如果用户想要更新image1和image 4,那么他们将浏览并选择所需的图像文件,并将image2和image3留空。

这是执行mysql查询后的概念:

ID = 1
image1 = newimage1.jpg
image2 = image2.jpg
image3 = image3.jpg
image4 = newimage4.jpg

如何进行验证查询?

目前我的代码是这样的,我不知道如何从这里继续,因为我还是PHP / mysql的新手。

foreach ($_FILES['product_image']['name'] as $key => $value) {
if(!empty($value)) {
                `$upt=mysql_query("update products_list set` `image1='$pic1',image2='$pic2',image3='$pic3',image4='$pic4' where id='$id'");`
}
}

希望你们清楚这一点。提前致谢。 =)

2 个答案:

答案 0 :(得分:1)

您可以使用计数器更新正确的字段:

 foreach ($_FILES['product_image']['name'] as $key => $value) {
   if(!empty($value)) {
        // field names starts from 1
        $field = 'image'.($key+1);
        mysql_query("UPDATE product_list ".
                    "SET $field = '$value' ".
                    "WHERE id = $id");
   }
 }

当然,这意味着您必须根据表单发送的内容最多更新同一条记录四次。此外,您应该使用mysql_escape_string()

之类的内容来转义用户输入

答案 1 :(得分:0)

我认为你最好拥有product_images表。这样,产品可以有1个或多个图像。您的表单可以保持不变,但您只需将products.id与新图片表中的每条记录相关联。

添加新产品时,您将创建产品,然后为他们在表单中上传的每张图片插入图像记录。

编辑产品时,您可以轻松删除照片或添加新照片。

// remove an image
mysql_query("delete from product_images where product_id=$pid and id=$iid");

// add a new image
mysql_query("insert into product_images (product_id, image) values ($pid, '$filename')");

注意:不应直接使用这些查询。确保您采取适当的预防措施以防止SQL注入。