PHP membangunkan kelas pangkalan data terkapsul buku tetamu ringkas

Terdahulu kami menyebut menyediakan kelas LyDB yang menggunakan pangkalan data

Di sini kami merangkum semua fungsi SQL dan paging dan memanggilnya terus kemudian:

<?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;
   }
}
?>

Beri nama fail kelas ini. : lydb.class.php

Log masuk pentadbir dan penghakiman kebenaran juga mencipta fail class authority.class.php yang dipanggil

<?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;
      }
   }
?>

dan kemudian merujuknya terus pada halaman muka hadapan. Boleh:

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

pernyataan memerlukan_sekali() menyertakan dan menjalankan fail yang ditentukan semasa pelaksanaan skrip (dalam istilah awam, fail dalam kurungan akan dilaksanakan sekali). Tingkah laku ini serupa dengan pernyataan require(), satu-satunya perbezaan ialah jika kod dalam fail sudah disertakan, ia tidak akan disertakan lagi.

Meneruskan pembelajaran
  • Cadangan kursus
  • Muat turun perisian kursus