私は次のような単純な検索クエリのコードを持っている:MySqlから特殊文字を無視して情報を取得するにはどうすればよいですか?
function explode_search($squery, $column, $db, $link) {
global $conn;
$ven = explode(' ', safeInput(str_replace(',', '', $squery)));
$ven2 = array_map('trim', $ven);
$qy = ''.$column.' LIKE "%'.implode('%" AND '.$column.' LIKE "%', $ven2).'%"';
$query = 'SELECT DISTINCT '.$column.', id, work_composer FROM '.$db.' WHERE '.$qy.' ORDER BY '.$column.' LIMIT 100';
$result = mysqli_query($conn, $query);
while ($row = mysqli_fetch_assoc($result)) {
echo '<div><span class="mdmtxt" style="margin-bottom:5px;"><a href="'.$link.'.php?id='.$row['id'].'">'.$row[$column].'</a></span> <span class="mdmtxt" style="opacity:0.6;">('.fixcomp(cfid($row['work_composer'], 'cffor_composer', 'composer_name')).')</span></div>';
}
}
(safeInput機能は、「削除され、 "と他の可能problematics)
それはポイントまで無事に動作し
誰かが検索する場合。 「ステファン」の場合は「ステファン」(またはその逆)を探してもらいたい場合や、「ミュンヘン」を探している場合は「ミュンヘン」もリストに表示されます。
MySQLはそれらの検索クエリと一致しますesに関係する特殊文字に関係なく?
バインドされたパラメータを使用した場合、問題のある文字はありません。 – CD001
データベーステーブルの照合をチェックすることもできます。あなたが 'utf8_general_ci'(例えば)を使っているなら、それはアクセントの有無にかかわらず文字と一致するはずです。 *あなたの例では* Stephane *と*Stéphane*はうまくいくはずです。 – CD001