如何更新MySQL中的序列化数据

rey*_*orn 4 php mysql serialization

我在mySQL数据库中有这个序列化数据

a:4:{i:0;s:7:"bvl.png";i:1;s:8:"ccop.jpg";i:2;s:11:"reyborn.png";i:3;s:13:"swopgroup.jpg";}
Run Code Online (Sandbox Code Playgroud)

如何更新此数据,例如我想删除ccop.jpg

Cze*_*ogy 5

您必须从数据库中获取值,对其进行反序列化,删除元素,序列化并再次保存.

$remove = "ccop.jpg";

//
// get the string from the database
//

$arr = unserialize($str);

foreach($arr as $key => $value)
  if ($value == $remove) unset($arr[$key]);

$str = serialize($arr);

//
// save the string back to the database
//
Run Code Online (Sandbox Code Playgroud)

而不是保存序列化的值列表,最好有一个规范化的数据库,只是做一个简单的DELETE FROM images WHERE object_id = ....


You*_*nse 5

不要将序列化数据存储在数据库中.

创建一个链接表包括main_idpicture和图像名称存储在里面.
因此,您将拥有对它们的独特访问权限.