Codeigniter操作数据库表的优化写法总结

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