PHP 퍼 지 조회 기술 사례 분석[소스 코드 다운로드 첨부]

6208 단어 PHP모호 조회
이 글 의 실례 는 PHP 모호 조회 기술 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
간단 한 소개
본질 적 으로 PHP 모호 조회 기술 을 폭로 하 다.
기능.
  • 입력 한 키워드 에 따라 관련 사용 자 를 찾 습 니 다
  • PHP 사용자 조회 기 사례 분석

    과정 목표
  • PHP 퍼 지 기술 의 응용 파악
  • 과정 중점
    PHP 모호 검색 의 문법PHP 모호 조회 의 응용과정 사례(효과 도)


    데이터베이스 디자인
    사용자 테이블(user):
    
    CREATE TABLE user(
      `uid` int(10) AUTO_INCREMENT PRIMARY KEY COMMENT '  ID',
      `username` varchar(30) NOT NULL DEFAULT '' COMMENT '   ',
      `password` varchar(6) NOT NULL DEFAULT '' COMMENT '  ',
      `sex` char(2) NOT NULL DEFAULT '  ' COMMENT '  ',
      `email` varchar(40) NOT NULL DEFAULT '' COMMENT '  ',
      `hobby` varchar(255) NOT NULL DEFAULT '' COMMENT '    ',
      KEY `username`(`username`)//  
    )ENGINE=MyISAM DEFAULT CHARSET=UTF8 COMMENT='   '
    
    
    색인 의 장점:
    만약 에 특정한 조건 에 따라 데 이 터 를 검색 하면 이 조건 필드 에 색인 이 만들어 지지 않 으 면 전체 표를 조회 할 때 색인 을 만 들 면 조회 할 때 색인 에 따라 조회 하여 조회 성능 을 향상 시킨다.
    Mysql 모호 조회 문법
  • SQL 매 칭 모델(개발 에서 가장 많이 응 용 된 것)
  • 정규 표현 식 일치 모드
    SQL 매 칭 모드
  • SQL 매 칭 모드 를 사용 하고 연산 자=또는!=을 사용 할 수 없습니다.연산 자 LIKE 또는 NOT LIKE 를 사용 합 니 다
  • SQL 매 칭 모드 를 사용 하고 MYSQL 은 두 가지 어댑터 를 제공 합 니 다.
    ①%임 의 수량 을 나타 내 는 임 의 문자(0 개 포함)
    ②_임의의 단일 문 자 를 표시 합 니 다.
  • SQL 매 칭 모드 를 사용 합 니 다.매 칭 형식 에 상기 두 개의 어댑터 가 포함 되 어 있 지 않 으 면 검색 효 과 는=또는!=과 같 습 니 다
  • SQL 매 칭 모드 를 사용 하고 기본 적 인 상황 에서 대소 문 자 를 구분 하지 않 습 니 다
  • 코드 구현:
    
    SELECT * FROM user WHERE username like 'l%';
    SELECT * FROM user WHERE username like '%e';
    SELECT * FROM user WHERE username like '%o%';
    SELECT * FROM user WHERE username like '___';//  _,  username         
    SELECT * FROM user WHERE username like '_o%';//      o
    
    
    정규 표현 식 일치 모드
    임의의 단일 문자 와 일치 합 니 다4
  • *0 개 이상 의 문자 와 일치 합 니 다
  • eg:x*는 모든 수량 과 일치 하 는 x 문 자 를 표시 합 니 다.
  • []괄호 에 있 는 임의의 문자 와 일치 합 니 다
  • eg:[abc]일치 문자 a,b 후자 c
       [a-z]모든 알파벳 일치
       [0-9]모든 숫자 와 일치 합 니 다.
       [0-9]*모든 수량의 모든 숫자 와 일치 합 니 다.
       [a-z]*모든 수량의 알파벳 과 일치 합 니 다.
  • ^어떤 문자 나 문자열 로 시작 하 는 것 을 나타 낸다
  • eg:^a 는 알파벳 a 로 시작한다
  • $는 특정한 문자 나 문자열 의 결 과 를 나타 낸다
  • eg:s$는 알파벳 s 로 끝 납 니 다.
  • 정규 표현 식 일치 모드 에서 사용 하 는 연산 자:REGEXP(RLIKE)또는 NOT REGEXP(NOT RLIKE)
  • code:
    
    SELECT * FROM user WHERE username REGEXP '^l';
    SELECT * FROM user WHERE username REGEXP '...';
    
    
    PS:'어댑터'만 사용 하면 몇 개의 점 어댑터 가 있 습 니 다.N 개 를 가정 하면 일치 하 는 모드 는 N 개 이상 을 표시 합 니 다.

    정확 한 문자 수^...$          //세 글자
    SELECT * FROM user WHERE username REGEXP '^...$';

    케이스
    개발 절차

    소스 코드 분석
    
    <?php
    //   
    $keywords = isset($_POST['keywords'])?$_POST['keywords']:'';
    //     ,php7   mysql_connect    mysqli_connect
    $link = mysqli_connect(
      "localhost:3306",
      "root",
      "root",
      "mook"
    );
    if(!empty($keywords)){
      $sql = "SELECT * FROM user WHERE username like '%{$keywords}%' ";
    }else{
      $sql = "SELECT * FROM user";
    }
    $usersArr = [];
    $result = $link->query($sql);
    while($row = $result->fetch_assoc())
    {
      //      
      // $row['username'] = str_replace($keywords, "<font color='red'>".$keywords."</font>",$row['username']);
      //    ,          
      $usernameArr = preg_split('/(?<!^)(?!$)/u',$row['username']);
      foreach ($usernameArr as $key => $value) {
        if(strtoupper($keywords) == strtoupper($value)){
          $usernameArr[$key] = "<font color='red'>".$value."</font>";
        }
      }
      $row['username'] = join($usernameArr);
      $usersArr[] = $row;
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>php     </title>
    </head>
    <body>
      <h1>php    </h1>
      <form action="index.php" method="post">
           :<input type="text" name="keywords" value="" />
        <input type="submit" value="    " />
      </form>
      <?php
        if(!empty($keywords)){
          echo "     :<font color='red'>&nbsp;".$keywords."&nbsp;</font>  !";
        }
        $tableString = "<table width='500' border='1' cellpadding='5'>";
        $tableString .= "<tr bgcolor='orange'><th>   </th><th>  </th><th>  </th></tr>";
        if(!empty($usersArr)){
          foreach ($usersArr as $key => $value) {
            $tableString .= "<tr><td>" . $value['username']. "</td><td>" . $value['email'] . "</td><td>".$value['sex']."</td></tr>";
          }
        }else{
          $tableString .="<tr><td colspan='3'>    </td></tr>";
        }
        $tableString .= "</table>";
        echo $tableString;
      ?>
    </body>
    </html>
    
    
    원본 다운로드 주소:
    여 기 를 클릭 하 세 요.
    더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
    본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

    좋은 웹페이지 즐겨찾기