Active Record

class Data extends CI_Controller
{
	function index()
	{
		echo 'Hwllo DBer';
	}
	//多结果标准查询(对象形式)
	function select()
	{
		$this->load->database();
		$query = $this->db->query("SELECT * FROM test");
		foreach($query->result() as $row)
		{
			echo $row->title."----";
			echo $row->name."&----";
			echo $row->email."<br>";
		}
		echo 'Total Results:'.$query->num_rows();
	}
	//多结果标准查询(数组形式)
	function select_array(){
		$this->load->database();
		$query = $this->db->query("SELECT * FROM test");
		foreach($query->result_array() as $row){
			echo $row['title']."----";
			echo $row['name']."&----";
			echo $row['email']."<br>";
		}
	}
	//但结果标准查询(对象形式)
	function select_one($id=1)
	{
		$this->load->database();
		$query = $this->db->query("SELECT * FROM test WHERE id=".$id);
		$row = $query->row();
		echo $row->name;
	}
	//但结果标准查询(数组形式)
	function select_one_array($id=1)
	{
		$this->load->database();
		$query = $this->db->query("SELECT * FROM test WHERE id=".$id);
		$row = $query->row_array();
		echo $row['name'];
	}
	//标准插入
	function insert($title='',$name='')
	{
		$this->load->database();
		$sql = "INSERT INTO test (title,name) VALUES ('".$title."','".$name."')";
		$this->db->query($sql);
		echo $this->db->affected_rows();
	}
	//快捷查询
	function select_quick()
	{
		$this->load->database();
		$query = $this->db->get('test');
		foreach($query->result() as $row)
		{
			echo $row->title."<br>";
		}
	}
	//快捷插入
	function insert_quick(){
		$this->load->database();
		$data = array(
			'title' => 'Title',
			'name' => 'Name',
			'email' => 'Email'
		);
		$this->db->insert('test',$data);
	}
	/*
	Active Record
	-------------------------------------------------------------------------------------
	选择数据
	-------------------------------------------------------------------------------------
	$this->db->get('table_name'[,$limit[,$offset]]);
	$this->db->get_where('table_name'[,$where[,$limit[,$offset]]]);
	$this->db->select();//允许在SQL查询中写SELECT部分
		$this->db->select('title,name,email');
		$query = $this->db->get('table_name');
	$this->db->select_max(field);
	$this->db->select_min(field);
	$this->db-<select_avg(filed);
	$this->db->select_sum(filed);
	$this->db->from();
	$this->db->join();
	$this->db->where();
		$this->db->where('name',$name);
		$this->db->where('name!=',$name);
		$this->db->where(array('name!='=>$name,'title'=>$title));
		$this->db->where('names="Joe" AND status="boss"');
	$this->db->or_where();
	$this->db->where_in('username',array('Frank','Todd','james'));
	$this->db->or_where_in();
	$this->db->where_not_in();
	$this->db->like();
		$this->db->like('title','match'[,before|after|both|none]);
		$this->db->like(array('title'=>$match,'page'=>$match));
	$this->db->or_like();
	$this->db->not_like();
	$this->db->or_not_like();
	$this->db->group_by('title'|array('title','date'));
	$this->db->distinct();
	$this->db-having('user_id=45' | 'user_id',45); | array('title'=>'sfd','page'=>5);
	$this->db->or_having();
	$this->db->order_by('title','desc' | 'title desc,name asc');
	$this->db->limit($limit[,$offset]);
	$this->db->count_all_results('table_name');
	-------------------------------------------------------------------------------------
	插入数据
	-------------------------------------------------------------------------------------
	$this->db->insert('table_name',$data_array);
	$this->db->insert_batch();
	$this->db->set('name',$name[,FALSE|TRUE]);
	$this->db->set(array('name'=>name,'title'=>$title));
	-------------------------------------------------------------------------------------
	更新数据
	-------------------------------------------------------------------------------------
	$this->db->where('id',$id);
	$this->db->update('table_name',$data_array);
	$this->db->update_batch();
	-------------------------------------------------------------------------------------
	删除数据
	-------------------------------------------------------------------------------------
	$this->db->delete('table_name',array('id'=>$id));
	$this->db->empty_table('table_name');/清空
	
	$this->db->from('table_name');//TURNCATE TABLE table_name
	$this->db->turncate();
	-------------------------------------------------------------------------------------
	链式方法
	-------------------------------------------------------------------------------------
	$this->db->select('title')->from('table_name')->where('id',$id)->limit(10,20);
	-------------------------------------------------------------------------------------
	Actice Record缓存
	-------------------------------------------------------------------------------------
	Active Record 允许你将查询的某个特定部分保存(或"缓存")起来,以便在你的脚本执行之后重用。一般情况下,当一次Active Record调用结束,所有已存储的信息都会被重置,以便下一次调用。如果开启缓存,你就可以使信息避免被重置,方便你进行重用。
	$this->db->start_cache();
	$this->db->stop_cache();
	$this->db->flush_cache();
	*/
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Yii2框架的Active Record是一个强大的ORM(对象关系映射)工具,它可以将数据库中的表映射成为Yii2框架中的PHP类,并且提供了一系列的API来进行对数据库的操作。 下面是一些常用的Active Record操作: 1. 查询单条记录: ```php $model = ModelName::findOne($id); ``` 2. 查询多条记录: ```php $models = ModelName::find()->where(['attribute' => 'value'])->all(); ``` 3. 插入记录: ```php $model = new ModelName(); $model->attribute = 'value'; $model->save(); ``` 4. 更新记录: ```php $model = ModelName::findOne($id); $model->attribute = 'new value'; $model->save(); ``` 5. 删除记录: ```php $model = ModelName::findOne($id); $model->delete(); ``` 6. 自定义查询: ```php $models = ModelName::find()->select(['attribute1', 'attribute2'])->asArray()->all(); ``` 上述代码中,`ModelName`是你定义的Active Record类名,`findOne()`方法用于查找单条记录,`find()`方法用于查找多条记录,`where()`方法用于设置查询条件,`all()`方法返回所有查询结果,`new`关键字用于创建新的Active Record实例,`save()`方法用于保存数据到数据库中,`delete()`方法用于删除数据,`select()`方法用于指定查询的列,`asArray()`方法用于返回查询结果数组而不是Active Record对象。 需要注意的是,Active Record还提供了一些高级的操作,如关联查询、批量操作、查询缓存等。详细的信息可以参考Yii2官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值