Versión Completa : Duda con PHP5
jasz
septiembre 16, 2005, 08:23
Para pasar algunos datos entre scripts, uno siempre los manda como Strings via POST o GET...
Cuando hay que pasar arrays entre scripts.. regularmente lo que hago es serializarlo, y luego codificarlo de la siguiente manera:
$myVar = array(
'userid' => 1,
'first_name' => 'Pepito',
'last_name' => 'Perez',
'email' => 'pperez@domain.com'
);
$serializedVar = base64_encode(serialize($myVar));
Ahora mi duda es la siguiente:
Si quiero almacenar la informacion del array sin usar cookies ni sesiones, sera posible almacenar la variable serializada/codificada en un campo de mi BD?
Obvio que es posible, al fin y al cabo es simplemente un string, pero de lo que no estoy seguro es si voy a tener problemas en el futuro si por ejemplo actualizo a una version nueva de PHP ... o si cambio de sistema operativo.
Uds. que opinan? sera seguro hacer esto? o sera que mejor meto la informacion en la BD como XML? (seria un poco mas de trabajo)
Nota: No quiero hacer una tabla aparte en la BD para almacenar esta informacion porque simplemente no es necesario.
poppetmaster
septiembre 16, 2005, 09:24
Para pasar algunos datos entre scripts, uno siempre los manda como Strings via POST o GET...
Cuando hay que pasar arrays entre scripts.. regularmente lo que hago es serializarlo, y luego codificarlo de la siguiente manera:
$myVar = array(
'userid' => 1,
'first_name' => 'Pepito',
'last_name' => 'Perez',
'email' => 'pperez@domain.com'
);
$serializedVar = base64_encode(serialize($myVar));
Ahora mi duda es la siguiente:
Si quiero almacenar la informacion del array sin usar cookies ni sesiones, sera posible almacenar la variable serializada/codificada en un campo de mi BD?
Obvio que es posible, al fin y al cabo es simplemente un string, pero de lo que no estoy seguro es si voy a tener problemas en el futuro si por ejemplo actualizo a una version nueva de PHP ... o si cambio de sistema operativo.
Uds. que opinan? sera seguro hacer esto? o sera que mejor meto la informacion en la BD como XML? (seria un poco mas de trabajo)
Nota: No quiero hacer una tabla aparte en la BD para almacenar esta informacion porque simplemente no es necesario.
jaz.. porque dices que tendrias inconveniente con el cambio del sistema operativo...???? como tu lo dijiste es un string que se guarda y cuando se recupera es aplicarle un unserialize, estas funcionalidades (serialize/unserialize) estan soportadas para la version 5.X .. o almenos eso nos dice la documentacion.....
jasz
septiembre 16, 2005, 10:29
Ah, y si en php 5.1 o php 6 me cambian la funcion "serialize" (para soportar mas cosas)... las variables que quedaron almacenadas en la base de datos, que fueron serializadas con php5.0.x ... se me joden?..
Yo mismo respondi la pregunta... d'uh.. :P
poppetmaster
septiembre 16, 2005, 12:29
Ah, y si en php 5.1 o php 6 me cambian la funcion "serialize" (para soportar mas cosas)... las variables que quedaron almacenadas en la base de datos, que fueron serializadas con php5.0.x ... se me joden?..
Yo mismo respondi la pregunta... d'uh.. :P
hum veo eso demasiado dificil ... dado que la gente de php nos indican cuales funciones pueden cambiar en versiones futuras y cuales nop... que le "agreguen" funcionalidad tal vez pero que te quiten la funcion o la cambien por completo pues no lo creo....
.:*MeickoL*:.
septiembre 16, 2005, 01:32
yo por eso no me fjio mucho de las funciones de los lenguajes, por lo menos no esas tan especificas, yo aconsejo que lo mejor es crear las funciones a partir de las basicas de esas que nunca cambiaran, para evitar problemas. jejejejejejeje
CHiKi
septiembre 19, 2005, 08:42
Jazs jejeej que pena lo sapo.... qué andas haciendo???
vBulletin®, Copyright ©2000-2009, Jelsoft Enterprises Ltd.