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   -
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?
A voir également:

2 réponses

gaumez Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   1
 
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 ?
1
Zabuza66 Messages postés 368 Date d'inscription   Statut Membre Dernière intervention   66
 
Pour toutes les fonctions sql sur https://www.tayo.fr/ par exemple, addslashes est utilisé

https://www.php.net/addslashes
là, fait pareil
0