Cómo actualizar los datos de serialización en MySQL

Tengo esta serialización de datos en mi base de datos 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";} 

¿Cómo puedo actualizar estos datos, por ejemplo, quiero eliminar ccop.jpg ?

Debe recuperar el valor de la base de datos, deserializarlo, eliminar el elemento, serializarlo y guardarlo nuevamente.

 $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 // 

En lugar de guardar una lista de valores serializada, es mejor tener una base de datos normalizada y simplemente hacer un DELETE FROM images WHERE object_id = ...

No almacene datos serializados en la base de datos.

Cree una tabla vinculada compuesta por main_id e picture y almacene sus nombres de imagen en ella.
Por lo tanto, tendrá un acceso distinto a ellos.

Lo ideal es que necesites

  • Extraelo
  • deserializarlo
  • modificarlo
  • serializarlo
  • escríbelo de nuevo a la base de datos.

Dado que lo está almacenando en un campo VARCHAR y es una matriz serializada de PHP que le gustaría extraer de la base de datos, desméntelo y luego vuelva a actualizar el campo. No debes mirar a MySQL para modificar información específica de PHP porque bueno … eso no es para lo que está hecho.