Codeigniter操作数据库表的优化写法总结
用codeigniter也有一段时间了,一直没有做什么总结。现在总结一些Codeigniter操作数据库表的优化写法,虽说不全,但是也确实可以帮助那些刚刚上手CI的同学。
链接数据库
$this->load->database();//手动连接数据库
//连接多数据库
$DB1=$this->load->database('group_one',TRUE);
$DB2=$this->load->database('group_two',TRUE);
查询
//参数绑定形式
$sql="SELECT*FROMsome_tableWHEREid=?ANDstatus=?ANDauthor=?";
$this->db->query($sql,array(3,'live','Rick'));
//多结果标准查询
$query=$this->db->query($sql);//自定义
$query=$this->db->get('tablename');//便捷形式,相当于:SELECT*FROMtablename
$query=$this->db->get('tablename',10,20);//相当于:SELECT*FROMtablenameLIMIT20,10
$query->result()//对象形式
$query->result_array()//数组形式
/*
foreach($query->result()as$row)
{
echo$row->title;
echo$row->name;
echo$row->email;
}
*/
$query->num_rows()//总条数
$query->num_fields()//字段数
//单结果标准查询
$row=$query->row();//对象形式
$row=$query->row_array();//数组形式
/*
$row=$query->row_array();
echo$row['name'];
*/插入
$data=array(
'title'=>$title,
'name'=>$name
);
$this->db->insert('tablename',$data);//便捷插入
$this->db->insert_string('tablename',$data); //便捷插入
$this->db->insert_id()//刚插入的id
$this->db->affected_rows()//影响的行数(update,insert)
更新
$data=array(
'name'=>$name,
'email'=>$email
);
$where="id=1";
$this->db->update('tablename',$data);
$this->db->update_string('tablename',$data,$where);
删除
$array=array(
'name'=>$name,
'title'=>$title
);
$this->db->delete('tablename',$array);
//Produces:
//"DELETEFROMtablenameWHEREname='$name'ANDtitle="$title""
$this->db->truncate('tablename');//清空表
//Produce:TRUNCATEtablename
-----------------------------------------------------
(where)
-------
$array=array(
'name'=>$name,
'title'=>$title
);
$this->db->where($array);
//Produces:"WHEREname='$name'ANDtitle="$title""
-----------------------------------------------------
$this->db->count_all('tablename');//表中记录总行数
-----------------------------------------------------
$query->free_result()//释放资源