Alors, j'utilise Mon scrip PHP pour transformer mon XML avec XSLT.
Ce script PHP crée donc un fichier SQL qui possède tout la création de la base.
Cependant, lorque je la lance, elle bloque à un moment ( donc ne termine pas le script ) et me dis comme erreur :
ERROR 1064 (42000) at line 101: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-t-elle_ete_signee=TDF.choix where ...
................
Donc... Si je comprends bien... Tu génères un script SQL avec du XSLT ?
Déjà ça il fallait pas le faire. Mais je suppose qu'il n'est plus envisageable de faire les choses correctement.
... Et en plus il y a des tirets dans les noms de tes colonnes. Ça non plus il fallait pas. Mais pareil, je suppose que c'est trop tard.
Bref. Effectivement, tu as besoin d'échapper tes tirets en XSLT. Voyons la solution.
Pour utiliser le code que tu avais trouvé :
de temps en temps, dans ton XSLT, tu as des trucs qui ressemblent à ça :
<xsl:value-of select="machin"/>
et qui crée du code avec des tirets dedans. C'est eux que tu veux modifier.
Il faut les remplacer par :
1 2 3 4 5
| <xsl:call-template name="string-replace-all">
<xsl:with-param name="text" select="machin" />
<xsl:with-param name="replace" select="'-'" />
<xsl:with-param name="by" select="'\-'" />
</xsl:call-template> |
Voilà.
"C'est compliqué" => Oui, comme je l'ai dit plusieurs fois, il ne fallait pas générer du SQL avec du XSLT.
Note : il est possible que ton code soit encore plus compliqué. Dans ce cas il va bien falloir que tu te décides à nous le montrer.
Partager