Active Record

本文深入探讨了数据库操作的基础知识及ActiveRecord框架的应用,包括查询、插入、更新和删除数据的方法,以及如何利用其简化数据库交互过程。通过实例演示了如何在控制器中执行这些操作,并介绍了ActiveRecord的高级特性如缓存、分组和排序等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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();
	*/
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值