我有這個連載數據,我的MySQL數據庫如何更新連載數據在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
?
我有這個連載數據,我的MySQL數據庫如何更新連載數據在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
?
您必須從數據庫中提取值,對其進行反序列化,移除元素,將其序列化並再次保存。
$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 = ...
。
理想情況下,你需要
由於您將它存儲在VARCHAR字段中,並且它是一個PHP序列化數組,因此您希望將其從數據庫中反序列化並重新更新該字段。你不應該看MySQL來修改PHP的具體信息,因爲......這不是它的目的。
謝謝你,你救了我一天:) – reyBorn 2011-04-10 15:25:39
謝謝你的想法,如果我只能決定我可能會這樣做,但不幸的是,我只是在做php代碼,我不能改變數據庫表的定義,這就是爲什麼我正在尋找替代方法。 – reyBorn 2011-04-10 15:24:15