2017-05-21 1 views
-2

J'ai une variable php faisant référence à une chaîne qui contient des apostrophes, mais quand je cite cette variable, elle pense que j'essaie de terminer la chaîne. Ma variable lit à partir d'un tableau de données de table, donc je ne peux pas entrer et mettre un "\" avant chaque apostrophe de la table. Si $foo contient la chaîne "ne pas", comment puis-je correctement dire '$foo' sans essayer de terminer la chaîne. Merci.Comment puis-je ignorer une apostrophe dans une citation en PHP?

+0

Vous devez en apprendre davantage sur _escaping_. – SLaks

+1

cela semble lié à DB et cette citation est prise comme une injection SQL. La question n'est cependant pas claire en raison du manque de code. Dans tous les cas, utilisez une instruction préparée. –

+0

Si vous n'allez pas mettre à jour votre question pour contenir le code complet, alors je ne peux pas vous aider. La question pourrait également se fermer avec quelques doublons possibles. Pour cela (n'étant pas clair), j'ai donné la question -1. –

Répondre

1

Vous avez raison de penser que vous devez ajouter des caractères d'échappement ("\") avant que les apostrophes. Pour faire cela à la volée avec les données de la base de données, vous pouvez utiliser la fonction php addslashes.

donc:

$escapedString = addslashes($string); 

Vous pouvez aussi le faire avec la chaîne de remplacement fonction pour une plus grande précision:

$escapedString = str_replace("'", "\'", $string);