私はそれが一番明確な質問ではないと思っていますが、その例を少しはっきりさせるべきです。アポストロフィをどのようにエンコードして、mysqlで検索できるようにしますか?
私は映画名でいっぱいのテーブルを持っていますが、その中にはアポストロフィが含まれています。私は映画を見つけるために使用される検索ボックスを持っています。
私はそれがすべての作品
mov_title = '$search_keywords'
を経由して検索を行うが、この方法は、部分的な検索のための任意の結果が得られませんので、私はこの方法では、のために正常に動作します。この
mov_title LIKE '%$search_keywords%'
を使用する必要がある場合A-ZA-Z0-9のタイトルですが、タイトルにアポストロフィがある場合、完全一致してもその映画を見つけることはできません。
タイトルがDBに格納されている前に、私はこれを介してそれらを置く:
$search_keywords = htmlspecialchars(mysql_escape_string($_GET["search_keywords"]));
をそうDBで、一つ一つのアポストロフィの前にスラッシュがあります。
ムービータイトルをアポストロフィと一致させる唯一の方法は、アポストロフィの前に物理的にスラッシュを挿入することです。
これはとても些細なことだと思いますが、解決策は痛いほど明白ですが、私はそれを見ていません。
htmlspecialchars()を削除しても何も変更されませんでした。同じように動作します。 –
データベースの値がすでにhtmlspecialchars()を使用していたためです。これらの値をすべてエスケープする必要があります。たとえば、html_entity_decode()およびstripslashes()を使用します。 –
私はいくつかのテスト値を修正しましたが、まだそれらを見つけることはできません。 –