21 de marzo de 2007

Desarrollo Web: Como almacenar Arrays en Bases de datos MySql utilizando PHP

Es muy sencillo.

Necesitamos en primer lugar que el campo en el servidor de base de datos MySql sea de tipo text o de tipo varchar (yo prefiero el text salvo que sepamos el tamaño exacto del Array).

En cuanto al PHP es sencillo:

Usamos serialize(Array) para convertir nuestro Array en un churro de texto.

A continuación almacenamos ese churro de texto en la base de datos con el típico INSERT o actualizamos con el típico UPDATE.

Cuando queramos reutilizar ese Array almacenado en la base de datos lo extraemos. Nos aseguramos de tener el Array vacío (especialmente si se trata de una variable de sesión) y hacemos un SELECT para extraer los datos.

Y por último con la instrucción unserialize convertimos el churro de nuevo a un Array.

Os pongo aquí un ejemplo de código en PHP:

Insertar:

$perros = array("Cocker", "Dálmata", "Labrador");

$serPerros=serialize($perros);
$db->execute("INSERT INTO perros (nombre) VALUES ('". $perros ."')");



Extraer datos:

$result = $db->execute("SELECT * FROM perros");

if(!$result->EOF){
$arrayPerros = unserialize($result->fields[0]);
}



Comparte este Post:
Menéame Digg!