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?
-2
A
Répondre
0
Vous pouvez utiliser les addslashes de PHP PHP Manual - Add slashes
$foo = addslashes($foo);
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);
Vous devez en apprendre davantage sur _escaping_. – SLaks
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. –
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. –