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()//释放资源