OVH Cloud OVH Cloud

serialize et postgresql

6 réponses
Avatar
QueremosPaz
Bonjour
j'ai un probleme
je serialize une variable dans un champ postgresql de type Bytea
Mais j'ai bien peur que la fonction unserialize ne me ressorte pas ma valeur
Quelqu'un a t'il des infos a ce propos ? (pour info j'ai testé avec la
fonction pg_escape_bytea, pg_unescape_bytea)

Merci !

6 réponses

Avatar
Bloodshed
Bonjour
j'ai un probleme
je serialize une variable dans un champ postgresql de type Bytea
Mais j'ai bien peur que la fonction unserialize ne me ressorte pas ma
valeur
Quelqu'un a t'il des infos a ce propos ? (pour info j'ai testé avec la
fonction pg_escape_bytea, pg_unescape_bytea)

Merci !
serialize et unserialize ne sont pas reservé que pour les objets ?


Avatar
Bruno Baguette

Bonjour,

je serialize une variable dans un champ postgresql de type Bytea
Mais j'ai bien peur que la fonction unserialize ne me ressorte pas ma
valeur
Quelqu'un a t'il des infos a ce propos ? (pour info j'ai testé avec la
fonction pg_escape_bytea, pg_unescape_bytea)

serialize et unserialize ne sont pas reservé que pour les objets ?



La documentation de serialize
(http://php.belnet.be/manual/fr/function.serialize.php), indique que, je
cite : "serialize() accepte les types integer, double, string, array
(multidimensionnels) et object (les propriétés des objets seront
linéarisées, mais pas les méthodes)."

Donc pas de soucis pour serialize à mon avis...

--
----------------------------------------
Bruno Baguette -

Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL


Avatar
Bruno Baguette

Bonjour
j'ai un probleme
je serialize une variable dans un champ postgresql de type Bytea
Mais j'ai bien peur que la fonction unserialize ne me ressorte pas ma valeur
Quelqu'un a t'il des infos a ce propos ? (pour info j'ai testé avec la
fonction pg_escape_bytea, pg_unescape_bytea)


Est-ce que vous avez essayé en utilisant un champ de type
character varying (ou varchar) suffisamment long, voire même un TEXT ?

Je ne comprend pas très bien pourquoi vous utilisez un Bytea pour stocker
ce que serialize vous retourne, c'est à dire une simple chaine de
caractères finalement ?

Bien à vous,

--
----------------------------------------
Bruno Baguette -

Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL

Avatar
QueremosPaz


Bonjour
j'ai un probleme
je serialize une variable dans un champ postgresql de type Bytea
Mais j'ai bien peur que la fonction unserialize ne me ressorte pas ma valeur
Quelqu'un a t'il des infos a ce propos ? (pour info j'ai testé avec la
fonction pg_escape_bytea, pg_unescape_bytea)



Est-ce que vous avez essayé en utilisant un champ de type
character varying (ou varchar) suffisamment long, voire même un TEXT ?

Je ne comprend pas très bien pourquoi vous utilisez un Bytea pour stocker
ce que serialize vous retourne, c'est à dire une simple chaine de
caractères finalement ?



Disons que je n'ai pas le choix du type de champ...
Il faut que je me depatouille avec ce Bytea...

Bien à vous,




Avatar
Etienne SOBOLE
"QueremosPaz" a écrit dans le message de news:
40756d32$0$519$
Bonjour


Salut

j'ai un probleme
je serialize une variable dans un champ postgresql de type Bytea


le type text serait plus approprié, mais il n'y a pas de raison pour que ca
ne marche pas avec bytea.

Mais j'ai bien peur que la fonction unserialize ne me ressorte pas ma
valeur

Quelqu'un a t'il des infos a ce propos ? (pour info j'ai testé avec la
fonction pg_escape_bytea, pg_unescape_bytea)


personnellement, j'use et re-use de la serialisation, et donc je peux
l'affirmer ca marche sans probleme
sauf :
- pour les objets non PHP (genre une connexion a un base ou que sais je)
- les références qui sont transformé en instance.
- et evidement les boucles d'objet, c'est à dire que si tu as dans ton objet
une référence sur lui meme, alors la la serialisation plante.

mais tout cela est abondament expliqué dans la doc.

Le problem, si probleme il y a, peut venir du bytea, mais bon, la aussi j'en
doute.
Donc! probablement que le probleme vient de toi ! d'un bug humain quoi !!!

C'est complexe ce que tu cherches a sérializer ?
on peu avoir un petit exemple ?

Etienne

Merci !


Avatar
QueremosPaz

C'est complexe ce que tu cherches a sérializer ?
on peu avoir un petit exemple ?


$var = 1353193200;
$extra = array('EXT_DATE_EXPIRATION'=>strval($var));

$extra_insert = addslashes(pg_escape_bytea(serialize($extra)));

et ensuite j'fais un truc du genre :

update spip_articles set extra = '$extra_insert' where id_articlei

et la ca merde lors de mon select