0 レビュー
4 回答
php検索機能
自分のサイトでユーザープロファイルの検索機能を作成しようとしています。
$search= $_POST['search'];
$res=mysql_query("SELECT * FROM ".TBL_USERS." WHERE username LIKE '$search%'");
これは私が使用するコードです。これは、結果の先頭に一致するものを検索した場合にのみ機能します。大文字または小文字に関係なく、ユーザー名の一部として入力した値を返す方法はありますか?
ありがとう
わからない
0
レビュー
答え :
解決策:
"%"はワイルドカードであるため、検索文字列の前にも配置すると( %$search%
など)、一致します$usernameの任意の場所を検索します。
SQLでは「LOWER」を使用してユーザー名を小文字にし、PHPでは「strtolower」を使用して同じことを行い、クエリを実行して大文字と小文字を区別しない結果を取得します。
そしてDavidDorwardが言ったように:他のことをする前にbobby-tables.comを読んでください!!!
わからない
0
レビュー
答え :
解決策:
実際に何らかのデータクレンジングを追加する必要があります。生の投稿/取得データを取得して、クエリに直接挿入しないでください。
そうは言っても:
$search= strtolower($_POST['search']);
$res=mysql_query("SELECT * FROM ".TBL_USERS." WHERE LOWER(username) LIKE '$search%'");
わからない
0
レビュー
答え :
解決策:
LIKEを使用しているため、入力の両側で%ワイルドカードを使用できます。これにより、$searchがユーザー名の一部であるすべてのユーザーが返されます。
もご覧ください。 $search= mysql_real_escape_string($_POST['search']);
$res=mysql_query("SELECT * FROM ".TBL_USERS." WHERE username LIKE '%" . $search . "%'");
わからない
0
レビュー
答え :
解決策:
「SQLインジェクション」と「PHPプリペアドステートメント」という用語について読む必要があります-それらのためのGoogle...これはあなたが尋ねた質問よりもはるかに重要です。
しかし、あなたが尋ねたので、すべて大文字で比較してみてください...
マーティン。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。