Posted in PHP onJune 12, 2014
用codeigniter也有一段时间了,一直没有做什么总结。现在总结一些Codeigniter操作数据库表的优化写法,虽说不全,但是也确实可以帮助那些刚刚上手CI的同学。
链接数据库
$this->load->database();//手动连接数据库 //连接多数据库 $DB1 = $this->load->database('group_one', TRUE); $DB2 = $this->load->database('group_two', TRUE);
查询
//参数绑定形式 $sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?"; $this->db->query($sql, array(3, 'live', 'Rick'));//多结果标准查询 $query = $this->db->query($sql); //自定义 $query = $this->db->get('tablename'); //便捷形式,相当于:SELECT * FROM tablename $query = $this->db->get('tablename', 10, 20); // 相当于: SELECT * FROM tablename LIMIT 20, 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: // "DELETE FROM tablename WHERE name = '$name' AND title = "$title"" $this->db->truncate('tablename'); //清空表 // Produce: TRUNCATE tablename ----------------------------------------------------- (where) ------- $array = array( 'name' => $name, 'title' => $title ); $this->db->where($array); // Produces: "WHERE name = '$name' AND title = "$title"" ----------------------------------------------------- $this->db->count_all('tablename'); //表中记录总行数 ----------------------------------------------------- $query->free_result() //释放资源
Codeigniter操作数据库表的优化写法总结
- Author -
shichen2014声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@