助けてください...データベース内の正確な単語を検索できるようにする必要があります..、すでに別の方法を使用しています..
方法 1
$param2 = "SELECT * from item WHERE prodname REGEXP '[[:<:]]($param)[[:>:]]'
order by CASE WHEN instr(prodname, '$param') = 0 then 1 else 0 end,
instr(prodname, '$param') ASC";`
\
これは非常にうまく機能していますが、 orで単語を検索しようと"
するとエラーが返されます。私はすでに使用htmlspecialchars
してmysql_real_escape_string
いますが、問題はまだ存在します..
方法 2
$param2 = "WHERE prodname LIKE '$param %' OR prodname LIKE '% $param'
OR prodname LIKE ' $param%' OR prodname LIKE '%$param '
OR prodname LIKE '% $param %'
order by CASE WHEN instr(prodname, '$param') = 0 then 1 else 0 end, instr(prodname, '$param') ASC";`
これもうまく機能していますが、「STAMP PAD INK (RED)」などの正確な製品を入力すると、「NOT FOUND」という結果が返されますが、「STAMP PAD INK」のみを入力すると表示されます。追加'%$param%'
しますが、正確な単語を入力すると ex. 「インク」「しわ」という言葉も表示されますが、それは望ましくありません。
全文使えない…