Je suis en train d'insérer du texte provenant de sites Web éraflés dans ma base de données. certains des champs de la chaîne ont des caractères non imprimables/étranges. Par exemple,Rails ActiveRecord: Insertion de texte contenant des caractères non imprimables/étranges
if text is "C__O__?__P__L__E__T__E",
then the text in the database is stored only as "C__O__"
Je suis au courant h(), strip_tags() ... aseptiser, ... etc etc, mais je ne veux pas aseptiser ce SQL. L'activationecord enregistre le SQL correctement, et lorsqu'il est exécuté dans phpMySQL, la requête est exécutée correctement. quelque chose se passe entre la génération de la requête SQL et son exécution.
L'aide est très appréciée.
Le? est le caractère de substitution de paramètre; Cela ne devrait se produire que si vous l'utilisez dans votre texte de requête plutôt que comme paramètre. Veuillez modifier votre question pour donner un exemple de ce que vous faites exactement. – womble
Oui, montrez-nous un exemple du code à l'origine du problème. – Gareth
-1 Questions nécessitant des clarifications. Si vous appelez le SQL à l'aide de méthodes de recherche normales, Rails fait un excellent travail en remplaçant le? Si vous injectez manuellement les valeurs dans la requête à l'aide de la chaîne append, cela pourrait poser problème. Les commentaires de Gareth et de womble doivent être adressés. – hyuan