我在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";}
如何更新此数据,例如我想删除ccop.jpg
?
答案 0 :(得分: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
//
最好不要保存序列化的值列表,而是选择normalized database,只做一个简单的DELETE FROM images WHERE object_id = ...
。
答案 1 :(得分:5)
创建一个由main_id
和picture
组成的链接表格,并将您的图片名称存储在其中
因此,您将拥有对它们的独特访问权。
答案 2 :(得分:3)
理想情况下,您需要
答案 3 :(得分:0)
由于您将它存储在VARCHAR字段中并且它是一个PHP序列化数组,您可能希望将其从数据库中取出并反序列化,然后重新更新该字段。您不应该期待MySQL修改PHP特定信息,因为这不是它的用途。