7
votes

mysql_real_escape_string alternative pour SQL Server

Je me demande quel est l'équivalent en PHP pour l'échappement SQL Server des chaînes?


2 commentaires

Si vous utilisez une enveloppe comme PDO, vous n'aurez pas à vous soucier de cela parce que vous pouvez travailler avec des requêtes paramétrées. Si vous le pouvez, utilisez une enveloppe.


Désolé, je n'ai pas le privilège d'utiliser PDO.


3 Réponses :


7
votes

Nice question, je ne sais pas mais vous pouvez utiliser PDO: : Quote () avec le PDO_DBLIB pilote.


edit: semble être Ce gars Je l'ai eu de Stackoverflow : < / p> xxx


Une autre option: xxx


1 commentaires

Fonctionne-t-il avec PHP7? Parce qu'ils l'ont supprimé.



3
votes

La meilleure alternative consiste à utiliser des requêtes paramétrées, alors vous n'avez pas à échapper à des chaînes.

Si vous voulez toujours mettre la requête ensemble vous-même, la bonne façon d'échapper à un littéral à chaîne pour SQL Server (T-SQL) est de remplacer chaque apostrophe (') dans la chaîne avec deux apostrophes.


3 commentaires

Est-ce que cela gère également les caractères NULL, les backslashes et similaires dans la chaîne?


@ebyrob: oui. Les backslashes dans une chaîne ne nécessitent aucun traitement spécial du tout.


Est-ce valide pour tous les ensembles de caractères?



0
votes

La réponse courte est la suivante: Utilisez quels mécanisme fournissent vos bibliothèques de connexion, il n'a rien à voir avec la base de données. Si vous utilisez ADO, vous avez des requêtes paramétrées, si vous utilisez autre chose (je ne connais rien à propos de PHP) puis utilisez ce que cette bibliothèque offre.

Rouler votre propre est probablement une mauvaise idée, car vous êtes très susceptible d'avoir quelque chose de mal, par ex. Manipulation des délimiteurs de commentaire correctement.


0 commentaires