1

そのため、特定の文字で始まるユーザー名をテーブルで検索するようにクエリを設定しました。

私のクエリはこれです

if(isset($_POST['search']) || (isset($_GET['search']))){
if($_GET['search'] && !$_POST['search']){
if($_GET['search'] == "!"){
   $search = //What here for number and symbol check;
}
   else
   {
      $search = $_GET['search'];
   }
      $search = $_GET['search'];
}
elseif($_POST['search'] && !$_GET['search'])
{
   $search = $_POST['search'];
}

$stmt = $db->prepare("SELECT * FROM accounts WHERE username LIKE CONCAT(?, '%') OR id LIKE CONCAT('%', ?, '%') LIMIT $start, $limit");

すべての文字 az で問題なく動作しますが、何らかの理由でユーザー名を数字または記号で始めることを決定したユーザーも確認する必要があります (クライアントは、登録時に特殊文字をブロックすることを望んでいませんでした)。これを確認しますか?

4

1 に答える 1

1

mysql で正規表現を調べる必要があるようです。「アルファ」ではないものを検索する必要があります: [[:alpha:]] アルファ - 任意の文字。[az] および [AZ] に相当します。詳細については、このリンクを参照してください: http://www.techotopia.com/index.php/MySQL_Regular_Expression_Searches

于 2012-12-03T23:17:29.927 に答える