2010-09-08 3 views
4

Je ne sais pas si c'est possible mais ça vaut le coup ... J'essaie d'insérer du texte dans un champ 'TEXT' de MySQL .. Quelques mots dans le texte que je veux changer en fonction d'autres champs la base de données MySQL .. Quelque chose de similaire à un modèle d'e-mail php où le 'Cher $ {first_name}' peut être changé en fonction de qui l'email va ...Modèles d'email MySQL .. Est-ce possible?

Peut quelque chose comme ça être fait dans un champ dans un Table MySQL?

Je compte cela peut être fait en utilisant un fichier PHP, mais je me demandais si cela peut être fait en utilisant MySQL ..

Répondre

1

Ouais, je suppose que vous pourrait le faire, en utilisant une procédure stockée.

Il devrait avoir une boucle REPEAT qui utilise LOCATE pour trouver l'index de chaîne de la prochaine '${' jeton, prend le nom de là jusqu'à la prochaine LOCATE d '}', et le remplace par CONCAT et SUBSTRING avec la valeur. Si cette valeur provient d'une simple table de recherche nom-valeur qui n'est pas trop mauvaise, mais si vous voulez utiliser réellement la colonne ${first_name} appelée first_name vous devrez créer du SQL dynamique dans une chaîne et l'exécuter en utilisant PREPARE...EXECUTE, qui est laid et dangereux.

Ce serait complexe, fragile et dépendant du SGBD. SQL n'est pas vraiment conçu pour être pratique pour le ficelage de chaînes. Tout langage de programmation à usage général avec des facilités de manipulation de chaînes raisonnables devrait être capable de le faire d'une manière beaucoup plus directe. Si vous avez PHP disponible, utilisez-le.

Questions connexes