DB.php代码

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2020/1/1
 * Time: 11:43
 */

class DB
{
    /**dsn mysql连接
     * @var mixed
     */
 private $dsn;
    /**mysql 数据库用户名
     * @var mixed
     */
 private $user;
    /**mysql数据库密码
     * @var mixed
     */
 private $password;
    /**mysql数据库字符集
     * @var mixed
     */
 private $charset;
    /**pdo对象
     * @var PDO
     */
 private $pdoInstance;
    /**sql 对象
     * @var PDOStatement
     */
 private $pdoStmt;

    /**
     * DB constructor.
     * @param array $config
     */
 public function __construct($config = [])
 {
     $this->dsn=$config['dsn'];
     $this->user=$config['user'];
     $this->password=$config['password'];
     $this->charset=$config['charset'];
     $this->connect();
 }

    /**
     * 链接数据库
     */
 private function connect(){
     if(!$this->pdoInstance){
          $options=[
            PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES'.$this->charset
          ];
         //获取pdo对象
         $this->pdoInstance = new PDO($this->dsn, $this->user, $this->password);
         //设置pdo对象错误处理方式
         $this->pdoInstance->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
     }
 }

    /**通过sql query 数据
     * @param $sql
     * @param array $parameters
     * @return array
     * @throws MySQLException
     */
 public function query($sql,$parameters=[]){

    if(!is_array($parameters)){
        $parameters=[$parameters];
    }
//    var_dump($parameters);exit();
    $this->pdoStmt=$this->pdoInstance->prepare($sql);
    $index=1;
    foreach ($parameters as $parameter){
       $this->pdoStmt->bindValue($index++,$parameter,PDO::PARAM_INT);
    }
    $execRe=$this->pdoStmt->execute();

    if(!$execRe){
      throw new MySQLException($this->pdoStmt->errorInfo()[2],$this->pdoStmt->errorCode());
    }
    $data=$this->pdoStmt->fetchAll(PDO::FETCH_ASSOC);
    return $data;
 }
}
class MySQLException extends Exception{

}

index.php代码

<?php
/**
 * 操作mysql数据库
 * 1.建立链接
 * 2.写sql
 * 3.执行
 * 4.处理结果
 * 5.关闭
 */
require_once './DB.php';
class App{
    private $db;
    public function __construct()
    {

        $this->db=new DB([
            'dsn'=>'mysql:dbname=bick;host=localhost;port:3306;',
            'user'=>'root',
            'password'=>'root',
            'charset'=>'utf8',
        ]);
    }

    /**
     * 入口方法
     */
    public function run(){
      try{
         $pageSize=$_GET['page_size'] ?? 10;
         $pageIndex=$_GET['page_index'];
         $data=$this->pagination(intval($pageSize),intval($pageIndex));
         $count=$this->getCount();
         $totalPage=ceil($count/$pageSize);
         $info=[
             'count'=>$count,
             'total_page'=>$totalPage,
             'data'=>$data,
         ];
          return $this->returnSuccessData($info);

      }catch (Exception $e){
          return $this->returnData($e->getCode(),$e->getMessage());
      }
    }

    /**
     * 分页查询
     * @param $pageSize
     * @param $pageIndex
     * @return array
     * @throws MySQLException
     */
    public function pagination($pageSize,$pageIndex){

      $sql='select id,cateid from bk_article limit ? offset ?';

      $limit=$pageSize;
      $offset=$pageSize*($pageIndex-1);
      $data=$this->db->query($sql,[$limit,$offset]);
      return $data;
    }

    /**
     * 一共多少页
     * @return mixed
     * @throws MySQLException
     */
    public function getCount(){
        $sql='select count(id) as count from bk_article';
        $data=$this->db->query($sql);
        return $data[0]['count'];
    }
    /**
     * 返回正常数据
     * @param $data
     * @return string
     */
    public function returnSuccessData($data){
        $content=[
            'code'=>0,
            'message'=>'Success',
            'info'=>$data,
        ];
        return json_encode($content);
    }

    /**
     * 返回数据
     * @param $code
     * @param $message
     * @param array $data
     * @return string
     */
    public function returnData($code,$message,$data=[]){
       $content=[
           'code'=>0,
           'message'=>$message,
           'info'=>$data,
       ];
       return json_encode($content);
    }
}
$app=new App();
$re=$app->run();
echo $re;

本文由 admin 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论