Každý z těchto řetězců (v obou úryvcích) byste měli escapovat pomocí mysql_real_escape_string()
.
http://us3.php.net/mysql-real-escape-string
Důvod, proč se vaše dva dotazy chovají odlišně, je pravděpodobně proto, že máte magic_quotes_gpc
zapnuto (což byste měli vědět, že je to špatný nápad). To znamená, že řetězce shromážděné z $_GET, $_POST a $_COOKIES jsou pro vás escapovány (tj. "O'Brien" -> "O\'Brien"
).
Jakmile data uložíte a následně je znovu načtete, řetězec, který získáte zpět z databáze, nebude automaticky uniknout pro vás. Vrátíte se zpět "O'Brien"
. Budete jej tedy muset předat přes mysql_real_escape_string()
.