适合刚接触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模型),以此类推,然后在模型里这样写,不用多写了,(你也可以把方法写这里面,我忽略)
<?phprequire_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);
时间: 2024-10-06 22:03:09