如何在mysql的单个列中保存多个图像

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (6)

我可以在数据库mysql cepandant中保存带有文本的图像,我想通过将所有这些图像保存在我的表的colone中,通过签名分隔来一次性选择几个图像。我该怎么办?

任何帮助将不胜感激!

这是我的HTML代码:

 <form action="saveimage.php" method="POST" enctype="multipart/form-data">


  <input type="text" name="name" placeholder="name image" required>  
  <input name="image[]" multiple required type="file"/>
  <button type="submit" value="Upload">Valider</button>
  </form>

这是我的PHP代码:

include("conn.php");
$name = $_POST['name'];
$image = addslashes(file_get_contents($_FILES['image'] 
['tmp_name']));
$query = "INSERT INTO images(name,image) values('$name','$image')";
$result = mysqli_query($conn,$query);
if ($result) {
echo 'success';
}else{
echo 'error';
}

我想要的是,当用户点击“发送”时,图像colone将填充多个以逗号分隔的图像。

提问于
用户回答回答于

通常将图像保存为数据库中的blob。它不是一个varchar数据类型,所以在我看来这很难实现,因为你必须排除逗号字节不在图像中。您应该更改您的设计,它将多个图像存储在自己的行中,并使用一个键将其标识为属于一起。当然,每次访问该rable都必须改变Ou

用户回答回答于

据我所知,MySQL没有实现ARRAY列的数据类型。

我看到的选项是:

  1. 在主表和“images”表之间创建1:N关系。图像表的每一行将使用BLOB数据类型保存一个图像。
  2. BLOB在表中使用单个列,并以某种方式将所有图像序列化为单个字节流。然而,这很麻烦。

我会选择#1,因为它更容易实现。

扫码关注云+社区

领取腾讯云代金券