こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

キーワード検索について

DB(mysql)内をキーワード検索する場合、
Like '%key%'
などのようにLike検索をすると思うのですが、
一つ疑問なのが、「%」をキーワードとして検索したい場合は
Like '%%%'
となってしまい、すべてを表示してしまいます。
「%」をキーワードにした場合はどのような処理を行えば良いのでしょうか?

あと、もう一つ分からないのが、mysql_real_escape_stringなどの関数でエスケープをしてDBに登録した場合、例えば、「&」は「&」に変換されてDBに登録されると思うのですが、検索のキーワードを「amp」として検索すると、この「&」までもがヒットしてしまいます。
これはどのようにして対処すれば良いでしょうか?
DBに登録されるときに、エスケープされた文字が元に戻るようなことは期待できないでしょうか。
アドバイスをよろしくお願いします。

投稿日時 - 2006-03-01 06:59:01

QNo.1998938

困ってます

質問者が選んだベストアンサー

%を検索するときはエスケープして\%にします。
LIKE '%\%%'

&を&に変換するのはmysql_real_escape_stringではなくてhtmlspecialcharsです。DB登録前にhtmlspecialcharsするのではなくDBから取得して表示するときにhtmlspecialcharsするようにしたら良いと思います。

投稿日時 - 2006-03-01 08:26:11

お礼

いろいろと勘違いしていたみたいで、おかげで解決できそうです。
回答ありがとうございました。

投稿日時 - 2006-03-01 10:05:27

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問