Le simple guillemet sous php me pose problème
Résolu
gaumez
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
gaumez Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
gaumez Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je passe une bdd de forum aztek sur phpbb3 (d'ailleurs quand tout sera fini mon collègue et moi mettront en ligne le tuto qui n'existe pas, enfin je crois). Tout roule pour le moment, mais aztek a parfois oublié de mettre un antislash devant les simples guillemets dans les titres ou textes. Enervant, parce que quand je fais une requête sql sous php pour transférer un de ces textes, sql ne veut pas. Un petit bout de code ? Voilà:
$query="INSERT INTO phpbb_posts (poster_ip,forum_id,topic_id,poster_id,post_subject,post_text,post_time,) VALUES ('$poster_ip','$forum_id','$phpbb_topic','$user_id','$title','$post_text','$post_time')";
$result=mysql_query($query);
Où, quand ça ne marche pas, $post_text est un texte dans lequel les ' ne sont pas précédés par \.
Du coup j'aimerais changer tout ça par:
$text=str_replace(''','\'',$text); (illisible non?)
Bref, normal que ça ne marche pas puisque les guillemets ont une signification propre en php, j'ai essayé
$text=str_replace('\'','\\'',$text);
Et toujours rien (php me répond Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING), ce que je trouve assez logique. D'accord, mais qu'est ce que je fais maintenant?
Je passe une bdd de forum aztek sur phpbb3 (d'ailleurs quand tout sera fini mon collègue et moi mettront en ligne le tuto qui n'existe pas, enfin je crois). Tout roule pour le moment, mais aztek a parfois oublié de mettre un antislash devant les simples guillemets dans les titres ou textes. Enervant, parce que quand je fais une requête sql sous php pour transférer un de ces textes, sql ne veut pas. Un petit bout de code ? Voilà:
$query="INSERT INTO phpbb_posts (poster_ip,forum_id,topic_id,poster_id,post_subject,post_text,post_time,) VALUES ('$poster_ip','$forum_id','$phpbb_topic','$user_id','$title','$post_text','$post_time')";
$result=mysql_query($query);
Où, quand ça ne marche pas, $post_text est un texte dans lequel les ' ne sont pas précédés par \.
Du coup j'aimerais changer tout ça par:
$text=str_replace(''','\'',$text); (illisible non?)
Bref, normal que ça ne marche pas puisque les guillemets ont une signification propre en php, j'ai essayé
$text=str_replace('\'','\\'',$text);
Et toujours rien (php me répond Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING), ce que je trouve assez logique. D'accord, mais qu'est ce que je fais maintenant?
A voir également:
- Le simple guillemet sous php me pose problème
- Iphone 14 simple - Guide
- Simple pdf - Télécharger - PDF
- Easy php - Télécharger - Divers Web & Internet
- Simple ocr - Télécharger - Bureautique
- Simple file locker - Télécharger - Sécurité
2 réponses
Yahou, simple rapide et efficace, j'ai même enfin compris comment faire le noeud de cravate windsor (hem, voir sur tayo.fr)
Merci Zabuza.
La réponse était:
$str = "Votre nom est-il O'reilly ?";
echo addslashes($str); // Votre nom est-il O\'reilly ?
Merci Zabuza.
La réponse était:
$str = "Votre nom est-il O'reilly ?";
echo addslashes($str); // Votre nom est-il O\'reilly ?
Pour toutes les fonctions sql sur https://www.tayo.fr/ par exemple, addslashes est utilisé
https://www.php.net/addslashes
là, fait pareil
https://www.php.net/addslashes
là, fait pareil