Forum TourDeJeu · Règles du forum | Aide Recherche Membres |
Bienvenue invité ( Connexion | Inscription ) | Recevoir à nouveau l'email de validation |
cocos |
Ecrit le : Mardi 14 Décembre 2004 à 15h13
|
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 |
Sybler |
Ecrit le : Mardi 14 Décembre 2004 à 16h41
|
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]); -------------------- |
cocos |
Ecrit le : Mardi 14 Décembre 2004 à 18h53
|
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?
|
gorgu |
Ecrit le : Mercredi 15 Décembre 2004 à 04h30
|
Ouf Groupe : Membre Messages : 417 |
hum... etrange idée
a froid je dirais que c'est pas possible... arrives tu as afficher une image correcte de l'objet dans un echo ? -------------------- |
Nonothehobbit |
Ecrit le : Mercredi 15 Décembre 2004 à 13h49
|
Alien Groupe : Moderateurs Messages : 1298 |
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. 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]); -------------------- |
cocos |
Ecrit le : Mercredi 15 Décembre 2004 à 15h00
|
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 |
Sinclair |
Ecrit le : Jeudi 16 Décembre 2004 à 11h55
|
Pro Groupe : Membre Messages : 133 |
Euh ...
C'est quoi une BD serializée ? -------------------- Concepteur/Développeur de guildes.jpc.free.fr
|
gorgu |
Ecrit le : Jeudi 16 Décembre 2004 à 15h09
|
Ouf Groupe : Membre Messages : 417 |
alors là faut m'expliquer
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? -------------------- |
Cedric |
Ecrit le : Jeudi 16 Décembre 2004 à 16h27
|
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). -------------------- |
cocos |
Ecrit le : Jeudi 16 Décembre 2004 à 18h48
|
||
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...
d'ailleur comment tu fait des requetes sur les attributs de l'objet?? |
||
Magauss |
Ecrit le : Jeudi 16 Décembre 2004 à 19h01
|
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.
|