TourDeJeu, le réseau des jeux en ligne alternatifs : jeux web multijoueurs, jeux par forum. En savoir +

Flux RSS des discussions du forum : pour les joueurs, et pour les créateurs et MJ
  Reply to this topicStart new topicStart Poll

> Une Petite Question, comment stocker un objet dans une base
cocos
Ecrit le : Mardi 14 Décembre 2004 à 15h13
Quote Post


Kid
*

Groupe : Membre
Messages : 24


je voudrai stocker un objet dans une base mysql je le serialize,tout ce passe bien sauf si une des variables de l'objet de type string contient un ' ou un ",alors lorsque je veux récupérer l'objet il disparait apres un passage par unserialize.
J'ai essayé de faire un urlencode avant de stocker l'objet dans la base de donnée mais ca change rien.
quelqu'un aurait -il la solution?
merci
PMEmail Poster
Top
Sybler
Ecrit le : Mardi 14 Décembre 2004 à 16h41
Quote Post


Ouf
*

Groupe : Membre
Messages : 453


si tu prévois ajouter une donnée qui posède un ' ou un " ou autre, utilise:

addslashes($msg)

donc:
$query = "INSERT INTO table (id,item) VALUE ('','" . $addslashes($msg) . "');";


et lorsque tu veux ravoir les infos:
$query = "SELECT item FROM table WHERE id='1';";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
$item = stripslashes($row[0]);


--------------------
user posted image
PMEmail PosterUsers Website
Top
cocos
Ecrit le : Mardi 14 Décembre 2004 à 18h53
Quote Post


Kid
*

Groupe : Membre
Messages : 24


c'est ce que j'ai fait,mais je me demande si ca modifi pas la structure et ca fait que apres je ne peut plus deserialiser mon objet,d'ailleur ou placer le addslash? avant la sérialisation ou apres?
PMEmail Poster
Top
gorgu
Ecrit le : Mercredi 15 Décembre 2004 à 04h30
Quote Post


Ouf
*

Groupe : Membre
Messages : 417


hum... etrange idée smile.gif

a froid je dirais que c'est pas possible...

arrives tu as afficher une image correcte de l'objet dans un echo ?


--------------------
enfin je crois ...
Adept JDR
PMEmail PosterUsers Website
Top
Nonothehobbit
Ecrit le : Mercredi 15 Décembre 2004 à 13h49
Quote Post


Alien
*

Groupe : Moderateurs
Messages : 1298


huh.gif

le addslashes permet d'échapper les guillemets " afin qu'il n'y ait pas d'erreur lors de la requête

Ex : Update truc set machin=""test de guillemet"" plantera, avec addslashes :
Update truc set machin="\"test de guillement\""

Mais c'est uniquement pour le parser sql ! La chaîner rentrée restera intacte, à savoir : "test de guillement", sans les antislash. Vérifier par vous même dans la bdd. smile.gif

Donc inutile de faire un stripslashes à la récupération. Et votre objet ne sera jamais altéré.

$requete = 'insert into table (item) values ("'.addslashes(serialize($item)).'")';

et pour la récup


$query = "SELECT item FROM table WHERE id='1';";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
$item= unserialize($row[0]);


--------------------
user posted image
PMEmail PosterUsers Website
Top
cocos
Ecrit le : Mercredi 15 Décembre 2004 à 15h00
Quote Post


Kid
*

Groupe : Membre
Messages : 24


oui c'est bon j'ai réussit,c'est en effet le stripslash que je mettait qui fesait que ca bugguai.
merci beaucoup
PMEmail Poster
Top
Sinclair
Ecrit le : Jeudi 16 Décembre 2004 à 11h55
Quote Post


Pro
*

Groupe : Membre
Messages : 133


Euh ... smurf.gif

C'est quoi une BD serializée ?


--------------------
Concepteur/Développeur de guildes.jpc.free.fr
PM
Top
gorgu
Ecrit le : Jeudi 16 Décembre 2004 à 15h09
Quote Post


Ouf
*

Groupe : Membre
Messages : 417


alors là faut m'expliquer smile.gif

je suis trés trés interessé par cela... tu arrives a mettre dans une base un bojet avec ses propriétés et tout et tout?


--------------------
enfin je crois ...
Adept JDR
PMEmail PosterUsers Website
Top
Cedric
Ecrit le : Jeudi 16 Décembre 2004 à 16h27
Quote Post


Ouf
*

Groupe : Membre
Messages : 368


Dans certains langages, il est possible de serializer des objets. Cela revient a transformer un objet en chaine de caracteres.
J'imagine qu'une BD serializee c'est une BD qui stocke des objets serializes.

Si c'est bien joli sur le papier, ce systeme n'a que vocation de stockage car il n'est pas question de faire de requetes sur les attributs de l'objet serialize (au contraire d'un objet stocke dans une base de donnees objet ou assimilee).


--------------------
user posted image
PMEmail PosterUsers Website
Top
cocos
Ecrit le : Jeudi 16 Décembre 2004 à 18h48
Quote Post


Kid
*

Groupe : Membre
Messages : 24


pour ma part c'est un objet que je stock dans une base de donnée mysql et non pas une base de données sérialiser...
QUOTE
il n'est pas question de faire de requetes sur les attributs de l'objet serialize (au contraire d'un objet stocke dans une base de donnees objet ou assimilee).

d'ailleur comment tu fait des requetes sur les attributs de l'objet??
PMEmail Poster
Top
Magauss
Ecrit le : Jeudi 16 Décembre 2004 à 19h01
Quote Post


Kid
*

Groupe : Membre
Messages : 12


ça dépends de ta modélisation et de la façon dont tu stockes tes objets, tout ce que je peux dire c'est que ce sera un SELECT, pour le reste, n'ayant pas de détaisl sur ton modèle et sur ce que tu souhaites récupérer je ne pourrai rien dire.
PMEmail Poster
Top
« Sujets + anciens | Programmer | Sujets + récents »

Reply to this topicStart new topicStart Poll