찾다
  • 로그인
  • 가입
비밀번호 재설정 성공

당신이 관심을 갖고 있는 프로젝트를 팔로우하고 그들에 관한 최신 뉴스를 맛보세요

PHP는 간단한 방명록 캡슐화된 데이터베이스 클래스를 개발합니다.

앞서 우리는 데이터베이스를 사용하는 LyDB 클래스 설정에 대해 언급했습니다.

여기서 모든 SQL 및 페이징 기능을 캡슐화하고 나중에 직접 호출합니다.

<?php
class LyDB{

   var $_host="localhost";
   var $_user="root";//
   var $_password="root";
   var $_database="test";

   var $page_size=3;
   var $link;
   public function  __construct(){        //连接数据库
      date_default_timezone_set('PRC');
      $this->link = mysqli_connect($this->_host,$this->_user,$this->_password,$this->_database);
      if (!$this->link) { 
         die('Could not connect to MySQL: ' . mysqli_connect_error());
      } 
   }

   public function __destruct(){
      mysqli_close($this->link);
   }
   public function insert($nickname,$avatar,$message)   //添加留言内容到数据库
   {
      $message=str_replace ("<" , "<" , $message);
      //str_replace() 函数以其他字符替换字符串中的一些字符(区分大小写)。
      $message=str_replace (">" , ">" , $message);
      $message=str_replace ("\n" , " " , $message);
      $message=trim($message);  //trim() 函数移除字符串两侧的空白字符或其他预定义字符。

      $lytime=date("Y-m-d H:i:s");
      $sql="insert into ly (nickname,message,avatar,lytime)values('$nickname','$message','$avatar','$lytime')";
      $query=mysqli_query($this->link,$sql);
      if($query){
         return true;
      }
      else {
         return false;
      }
   }
   public function reply($id,$reply){   
      $message=str_replace ("<" , "<" , $reply);
      $message=str_replace (">" , ">" , $message);
      $message=str_replace ("\n" , " " , $message);
      $message=trim($message);
      $reply=$message;
      $retime=date("Y-m-d H:i:s");
      $sql="update ly set reply='$reply', retime='$retime' where id=$id";
      $query=mysqli_query($this->link,$sql);
      if($query)return true;
      else return false;
   }
   public function delete_by_id($id){   //删除留言
      $sql="delete from ly where id=$id";
      mysqli_query($this->link,$sql);
   }
   
   
   public function select_page_info(){    //分页
      $sql = "select count(*) as pagecount from ly";
      $query = mysqli_query($this->link,$sql);
      $row = mysqli_fetch_assoc($query);
      $ly_count=$row["pagecount"];
      $page_count=($ly_count%$this->page_size==0)?($ly_count/$this->page_size):($ly_count/$this->page_size+1);
      $page_info=array("ly_count"=> $ly_count,"page_count"=>(int)$page_count,"page_size"=>$this->page_size);
      return $page_info;
   }
   
   public function select_all_result(){   //查询显示留言
      $sql="select * from ly order by id desc";
      $query=mysqli_query($this->link,$sql);
      return $query; 
   }
   
   public function select_page_result(&$page_no){   //上一页,下一页,首页,末页
      $page_info=$this->select_page_info();
      if(!isset($page_no))$page_no=1;
      else if($page_no<1)$page_no=1;
      else if($page_no>$page_info["page_count"])$page_no=$page_info["page_count"];

      $first=($page_no-1)*$this->page_size;
      $sql="select * from ly order by id desc limit $first,$this->page_size ";
      $query=mysqli_query($this->link,$sql);
      $page_result=array("page_data"=>$query,"page_info"=>$page_info,"page_no"=>$page_no);
      return $page_result;
   }
}
?>

이 클래스 파일에 lydb.class.php

라는 이름을 지정합니다.

Administrator 로그인 및 권한 판단도 호출 클래스 Authority.class.php 파일을 생성합니다

<?php

class Authority{
   static public  function check_insert(){  //声明公共变量
      //检查是否具有添加留言权限
      return true;
   } 
   static public  function check_delete(){
      //检查是否具有delete权限
      if(isset($_SESSION["username"]) && $_SESSION["username"]=="admin")
         return true;
      else 
         return false;
   }
}
?>

<?php
   class User{
      static public function validate($username,$password){  // static public 声明公共变量
         if("admin"==$username && "12345"==$password){
            return true;
         }
         else 
            return false;
      }
   }
?>

그리고 프런트엔드 페이지에서 직접 인용합니다:

<?php require_once("lydb.class.php");?>
<?php require_once("authority.class.php");?>

require_once() 문은 스크립트 실행 중에 지정된 파일을 포함하여 실행합니다(인기 있는 원포인트 , 괄호 안의 파일은 한 번 실행됩니다). 이 동작은 require() 문과 유사합니다. 유일한 차이점은 파일의 코드가 이미 포함된 경우 다시 포함되지 않는다는 것입니다.

새로운 파일
시사 Clear