ci框架自定义数据库查询名称(方法)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ci框架自定义数据库查询名称(方法)相关的知识,希望对你有一定的参考价值。

适合刚接触php和ci框架的人,本人也是小白

原因:官方给的数据库查询方法可能不利于记忆使用,官方给的一些方法只能进行基础查询,每次复合查询都需要拼接条件,自己定义定义方法直接调用方法即可

操作步骤:

  1.ci框架官网下载好解压后的文件夹会有application这个目录,在application目录下找到models子目录,在models子目录里建一个PHP文件(名字随便起,如Base_model.php)

  这个文件里就是给你写自己定义的数据库查询方法,但开头要这样写(如下),自己定义的方法写在__construct方法下面

  

<?php 
class Base_model extends CI_Model    
{
public $table = "";
public $error = "";//操作数据库产生的错误信息,自行定义的
public $primary_key = "";//主键

public function __construct()
{
if (!isset($this->db)) {
$this->load->database();
}
}
}

  2.然后你数据库里有什么表,你就在models目录里建相应的模型(例如有user表,可以建一个User.php模型),以此类推,然后在模型里这样写,不用多写了,(你也可以把方法写这里面,我忽略)

<?php
require_once "Base_model.php"; //这里模型和Base_model.php都是在models目录下的
class User extends Base_model //这里是大写的User继承Base_model而不是继承CI_model
{
public function __construct()
{
parent::__construct();
$this->table = "user"; //这是表名,user表
$this->primary_key = "id"; //这是主键自增id,可不写
}
}

  3.我在Base_model.php里有查询所有和修改的方法(这里就举两个简单的小例子,复合方法我后续会更新)

 

  

<?php

class Base_model extends CI_Model
{
public $table = "";
public $error = "";//操作数据库产生的错误信息
public $primary_key = "";//主键

public function __construct()
{
if (!isset($this->db)) {
$this->load->database();
}
}

/**
* @param bool $onlyOne
* 查询这个表的所有数据
* 无需传递参数
*/
public function lists($onlyOne=true,$select="*")
{
$this->db->from($this->table);        //这里是表名
$res=$this->db->get();
$row = $res->result_array();
return $row;
}

/**
* 修改数据
* 传俩个数组过来$data=[‘name‘=>$name];
* $data为修改的字段,$where为where条件,两个都是数组
*/
public function update($data,$where)
{
return $this->db->update($this->table,$data,$where);
}
}

  

 

  4.上面查询和修改的方法在控制器(控制器都可以用)里的用法

 

 //查询所有数据

  //$this->表名->方法名(要传递的参数);
  $this->user->lists();
//

  //修改数据

先要有修改的数据(数组)$data,where条件(数组)$where

$data=[‘id‘=>1,‘name‘=>‘lisi‘];
$where=[‘id‘=>$id];
//$this->表名->方法名(要传递的参数);
$this->user->update($data,$where);





以上是关于ci框架自定义数据库查询名称(方法)的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段—— 数组的响应式方法

VSCode自定义代码片段10—— 数组的响应式方法

CI框架扩展自定义控制器的方法

ci框架 自定义配置方法

VSCode自定义代码片段——声明函数

VSCode自定义代码片段——CSS选择器