2011-01-21 2 views
1

私のユーザテーブルには、姓と名があります。mysql_real_escape_string()のスラッシュを含むmySQL内の名前の検索

私は oをL'O

  • L'
  • もが最後の名前でユーザーの検索を持っているが、

    • LOR
    • 探しL'オレンジのようなユーザがいるLOR

      ながら動作しません。
    • L \ 'Oは、どのようにそのための私のクエリアカウントことができますので

    (感覚ではなく、ユーザーが考える何かを作るた)のでしょうか?今、私のクエリで私は

    OR (CONCAT(`lName`, ', ', `fName`) LIKE '$term') 
    

    を持っている私は、検索「を要求しなければならない何らかの理由がある(と思う)検索LOまたはL'oが働きたいのですが?

  • +0

    addslashes()を使用して$ termをフィルタリングしましたか?はいの場合、必要なスラッシュを既に追加しているはずです。そうでなければ、それはあなたの欠けているものです(そして、btw、そこに起こるのを待っているSQLインジェクションがあります)。 ところで、addslashes()は使用しないでください。少なくともaddslashes()はすべてをクリーンアップしないので、少なくともmysql_real_escape_string()を使用してください。 –

    +0

    いいえ、それは意味をなさないでしょう...私はmysql_real_escape_string()を使用しています - addslashes()afterallだけではありません。 – Jason

    答えて

    0

    あなたは入力した検索語を取り、それにmysql_real_escape_stringを適用しますか?

    OR (CONCAT(`lName`, ', ', `fName`) LIKE '$term') 
    

    が動作するはずその後、

    $term = mysql_real_escape_string($term); 
    

    。ユーザーはl'oまたはl'oを検索する必要がありますが、それはうまくいくはずです。

    +0

    上記の最初のコメントから盗まれたように見えますが、これはトリックを行うため、これを答えとして使用します。 – Jason

    関連する問題