Inserción en una matriz serializada en PHP

Esta es mi primera vez aquí y he estado tirando de mi pelo sobre este, así que pensé que sería una buena primera pregunta para mí.

Estoy guardando algunos datos de matriz en una base de datos mysql, y luego estoy usando unserialize para editarlo. El problema es que borra todos los demás índices de la matriz cuando edito solo un índice. Aquí hay un código de ejemplo:

foreach($post as $key => $value) { if (isset($row)) { if ($i > 2) { $tempArray = unserialize($row[$i]); } } $tempArray[$time] = $value; if ($key == 'pid' || $key == 'uid') { $data[$key] = $value; } else { $data[$key] = serialize($tempArray); } $i += 1; unset($tempArray); } 

Gracias por cualquier idea que puedas dar.

para almacenar datos de matrices serializados en mysql y para recuperarlos y guardarlos en la misma tabla, aquí tiene cómo hacerlo.

Obtenga los datos serializados de la tabla y deserialícelos y almacene los datos de la matriz dentro de una variable. hacer cambios en los datos de la matriz mediante el uso de la variable que almacenamos los datos.

Nuevamente serializamos la variable que tiene la matriz modificada y actualizamos el campo de la tabla mysql con los nuevos datos serializados.

Por ejemplo:

 $data = array( "uid" => "some value", "pid" => "some value" ); $store_in_database = serialize($data); /* ...do the mysql insert query to store the new data in the field (serializedfield)... */ 

Ahora para actualizar los datos de serialización almacenados en el campo de la tabla de la base de datos.

/ * … busca la fila de la tabla o graba como quieras (registro único o múltiple) * /

 foreach($db_result as $db_row){ $temp_array = $db_row['serializedfield']; $temp_array['uid'] = "a new value"; $temp_array['pid'] = "another new value"; /* ... i wanted to add another array value */ $temp_array['akey'] = "some value"; $store_database = serialize($temp_array); /* ... do the mysql update query to replace this new data with the old one. */ unset($temp_array); } 

Lo anterior es solo para darte una idea. Espero que hayas entendido cómo se debe hacer aquí.