mysql_real_escape_string()
を使用して、これらの各文字列(両方のスニペット)をエスケープする必要があります 。
http://us3.php.net/mysql-real-escape-string
2つのクエリの動作が異なる理由は、magic_quotes_gpc
があるためと考えられます。 オンになっている(知っておくべきことは悪い考えです)。これは、$ _ GET、$ _ POST、および$ _COOKIESから収集された文字列がエスケープされることを意味します(つまり、"O'Brien" -> "O\'Brien"
。
データを保存し、その後再度取得すると、データベースから取得した文字列はなくなります。 自動的にエスケープされます。 "O'Brien"
が返されます 。したがって、mysql_real_escape_string()
を介して渡す必要があります 。