广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php中model的用法是什么
  • 160
分享到

php中model的用法是什么

phpmodel 2022-02-04 02:02:10 160人浏览 绘本
摘要

本文操作环境:windows7系统、PHP7.4版、DELL G3电脑php中model的用法是什么?PHP模型Model类封装数据库操作示例php模型Model类封装数据库操作,结合实例形式分析了php使用Mysqli封装的针对数据库操作

本文操作环境:windows7系统、PHP7.4版、DELL G3电脑

php中model的用法是什么?

PHP模型Model类封装数据库操作示例

php模型Model类封装数据库操作,结合实例形式分析了php使用Mysqli封装的针对数据库操作相关实现与使用技巧:

具体如下:

<?php
  //引入配置文件
  include "./config.php";
  class Model
  {
    public $link;//存储连接对象
    public $tableName = "";//存储表名
    public $field = "*";//存储字段
    public $allFields = [];//存储当前表所有字段
    public $where = "";//存储where条件
    public $order = "";//存储order条件
    public $limit = "";//存储limit条件
    
    public function __construct($tableName)
    {
      //1.存储操作的表名
      $this->tableName = PRE.$tableName;
      //2.初始化连接数据库
      $this->getConnect();
      //3.获得当前表的所有字段
      $this->getFields();
    }
    
    public function getConnect()
    {
      //1.连接数据库
      $this->link = mysqli_connect(HOST,USER,PWD,DB,PORT);
      //2.判断连接
      if (mysqli_connect_errno($this->link)>0){
        echo mysqli_connect_error($this->link);
        exit;
      }
    }
    
    public function query($sql)
    {
      $result = mysqli_query($this->link,$sql);
      if ($result && mysqli_num_rows($result)>0) {
       $arr = [];
       while($row = mysqli_fetch_assoc($result)){
          $arr[] = $row;
       }
      }
    return $arr;
    }
    
    public function getFields()
    {
      //查看表结构
      $sql = "desc {$this->tableName}";
      //执行并发送SQL
      $result = $this->query($sql);
      $fields = [];
      foreach ($result as $k => $v){
        $fields[] = $v['Field'];
      }
      $this->allFields = $fields;
    }
    
    public function exec($sql)
    {
      $result = mysqli_query($this->link,$sql);
      //处理结果集
      if ($result && mysqli_affected_rows($this->link)>0){
        //判断是否为添加操作,是则返回上一次执行的id
        if (mysqli_insert_id($this->link)){
          return mysqli_insert_id($this->link);
        }
        //删除修改操作成功则返回true
        return true;
      }else{
        //未执行成功则返回false
        return false;
      }
    }
    
    public function select()
    {
      $sql = "select {$this->field} from {$this->tableName} {$this->where} {$this->order} {$this->limit}";
      //执行并发送SQL
      return $this->query($sql);
    }
    
    public function find($id="")
    {
      //判断id是否存在
      if (empty($id)){
        $where = $this->where;
      }else{
        $where = "where id={$id}";
      }
      $sql = "select {$this->field} from {$this->tableName} {$where} limit 1";
      //执行并发送sql
      $result = $this->query($sql);
      //返回一条数据
      return $result[0];
    }
    
    public function field($field)
    {
      //判断字段是否存在
      if (empty($field)){
        return $this;
      }
      $this->field = $field;
      return $this;
    }
    
    public function count()
    {
      //准备SQL语句
      $sql = "select count(*) as total from {$this->tableName} limit 1";
      $result = $this->query($sql);
      //返回总数
      return $result[0]['total'];
    }
    
    public function add($data){
      //判断是否是数组
      if (!is_array($data)){
        return $this;
      }
      //判断是否全是非法字段
      if (empty($data)){
        die("非法数据");
      }
      //过滤非法字段
      foreach ($data as $k => $v){
        if (!in_array($k,$this->allFields)){
          unset($data[$k]);
        }
      }
      //将数组中的键取出
      $keys = array_keys($data);
      //将数组中取出的键转为字符串拼接
      $key = implode(",",$keys);
      //将数组中的值转化为字符串拼接
      $value = implode("','",$data);
      //准备SQL语句
      $sql = "insert into {$this->tableName} ({$key}) values('{$value}')";
      //执行并发送SQL
      return $this->exec($sql);
    }
    
    public function delete($id="")
    {
      //判断id是否存在
      if (empty($id)){
        $where = $this->where;
      }else{
        $where = "where id={$id}";
      }
      $sql = "delete from {$this->tableName} {$where}";
      echo $sql;
      //执行并发送
      return $this->exec($sql);
    }
    
    public function update($data){
      //判断是否是数组
      if (!is_array($data)){
        return $this;
      }
      //判断是否是全是非法字段
      if(empty($data)){
        die("非法数据");
      }
      $str = "";
      //过滤非法字段
      foreach ($data as $k => $v){
        if ($k == "id"){
          $where = "where id={$v}";
          unset($data[$k]);
        }
        if (in_array($k,$this->allFields)){
          $str .= "{$k}='{$v}',";
        }else{
          unset($data[$k]);
        }
      }
      //判断是否有条件
      if (empty($this->where)){
        die("请输入条件");
      }
      //去掉最右侧的逗号
      $str = rtrim($str,",");
      $sql = "update {$this->tableName} set {$str} {$this->where}";
      return $this->exec($sql);
    }
    
    public function where($where)
    {
      $this->where = "where ".$where;
      return $this;
    }
    
    public function order($order)
    {
      $this->order = "order by ".$order;
      return $this;
    }
    
    public function limit($limit)
    {
      $this->limit = "limit ".$limit;
      return $this;
    }
    
    public function __destruct()
    {
      mysqli_close($this->link);
    }
  }
 //自行调试
 $a = new Model("表名");
 // var_dump($a->find(3));
 // var_dump($a->select());
  // var_dump($a->count());
  // $res = $a->select();
  //var_dump($res);
?>

--结束END--

本文标题: php中model的用法是什么

本文链接: https://www.lsjlt.com/news/775.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php中model的用法是什么
    本文操作环境:Windows7系统、PHP7.4版、DELL G3电脑php中model的用法是什么PHP模型Model类封装数据库操作示例PHP模型Model类封装数据库操作,结合实例形式分析了php使用mysqli封装的针对数据库操作相...
    99+
    2022-02-04
    php model
  • php中model怎么用
    这篇文章主要介绍php中model怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php中model的用法:1、创建一个PHP示例文件;2、引入配置文件;3、创建Model类;4、初始化连接数据库操作;5、执行并...
    99+
    2023-06-21
  • Vue.js中v-model指令的作用是什么
    Vue.js中v-model指令的作用是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。v-model 指令在表单 &l...
    99+
    2022-10-19
    vue v-model
  • jspXCMS中Model是什么对象
    这篇文章主要为大家展示了“jspXCMS中Model是什么对象”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jspXCMS中Model是什么对象”这篇文章吧。模型对象。类名:com.jspxcm...
    99+
    2023-06-26
  • SpringMVC中Model与Session的区别是什么
    这篇文章给大家介绍SpringMVC中Model与Session的区别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Model与Session区别什么是Session:Session:在计算机中,尤其是在网络应用...
    99+
    2023-06-22
  • php中define的用法是什么
    在PHP中,define函数用于定义常量。常量是一个简单值的标识符,该值在脚本中是不变的,不能被重新赋值。define函数的语法如下...
    99+
    2023-09-16
    php
  • php中case的用法是什么
    本文操作环境:Windows7系统、PHP7.1版、Dell G3电脑。php中case的用法是什么?PHP Switch 语句switch 语句用于根据多个不同条件执行不同动作。如果您希望有选择地执行若干代码块之一,请使用 switch ...
    99+
    2015-11-19
    php case
  • php中const的用法是什么
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑const是php中的一个关键字,是用来定义常量的。在PHP中,可以使用 const 关键字或 define() 函数两种方法来定义一个常量。函数 define() 允...
    99+
    2019-07-16
    php const
  • php中fwrite的用法是什么
    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。php中fwrite的用法是什么PHP fwrite() 函数定义和用法fwrite() 函数将内容写入一个打开的文件中。函数会在到达指定长度或读到文件末尾(EOF)时...
    99+
    2020-03-18
    php fwrite
  • php中in_array()的用法是什么
    本文操作环境:windows10系统、php7、thinkpad t480电脑。我们都知道php中有大量的内置函数,在很多情况下使用起来非常方便。其中就有一个函数in_array(),可能还有很多小伙伴并不清楚它的具体用法,下面我们就来一起...
    99+
    2021-06-21
    php in_array()
  • php中$_REQUEST的用法是什么
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php 预定义变量$_REQUEST在实际开发过程中,我们不知道 form 表单通过哪种方式提交数据时,该怎么获取数据呢?PHP 中提供了一个 $_REQUEST 全局...
    99+
    2015-05-20
    php $_REQUEST
  • php中bcsub的用法是什么
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php中bcsub的用法是什么PHP中的bcsub()函数是一个内置函数,用于从另一个函数中减去一个任意精度数。此函数接受两个任意精度的数字作为字符串,并在将结果缩放...
    99+
    2021-12-02
    php
  • php中argv的用法是什么
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php中argv的用法是什么$argv — 传递给脚本的参数数组字符串数组,用来存放指向你的字符串参数的指针数组,每一个元素指向一个参数说明包含当运行于命令行下时传递...
    99+
    2015-05-20
    php
  • php中filter_input的用法是什么
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php中filter_input的用法是什么filter_input() 函数从脚本外部获取输入,并进行过滤。本函数用于对来自非安全来源的变量进行验证,比如用户的输入...
    99+
    2018-06-30
    PHP
  • php中str_split的用法是什么
    本教程操作环境:windows10系统、PHP7.1版、DELL G3电脑php中str_split的用法是什么str_split() 函数把字符串分割到数组中。语法str_split(string,length)参数 描述string 必...
    99+
    2018-05-26
    PHP
  • php中static的用法是什么
    本教程操作环境:windows10系统、PHP7.1版、DELL G3电脑php中static的用法是什么在 PHP 中,通过 static 关键字修饰的成员属性和成员方法被称为静态属性和静态方法,这里可以将它们统称为静态成员,类中的静态成...
    99+
    2021-12-11
    PHP
  • php中include的用法是什么
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php中include的用法是什么include (或 require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件中。包...
    99+
    2017-01-28
    PHP
  • php中private的用法是什么
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php中private的用法是什么public 表示全局,类内部外部子类都可以访问;private表示私有的,只有本类内部可以使用;protected表示受保护的,只...
    99+
    2015-04-08
    PHP
  • php中public的用法是什么
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php中public的用法是什么访问控制修饰符形式: class 类名{ 访问控制修饰符 属性或方法定义; }有3个访问修饰符:public公共的:在所有位置都可...
    99+
    2016-02-14
    php
  • php中alert的用法是什么
    在PHP中,没有直接的`alert`函数可以用来在浏览器中显示弹窗。`alert`函数通常是在JavaScript中使用的。在PHP...
    99+
    2023-09-21
    php alert
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作