Codeigniter操作数据库表的优化写法总结
author:一佰互联 2019-04-29   click:162

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