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

(0)

相关推荐

  • CodeIgniter针对数据库的连接、配置及使用方法

    本文实例讲述了CodeIgniter针对数据库的连接.配置及使用方法.分享给大家供大家参考,具体如下: 1. 数据库: create database test; create table users( id int not null, name varchar(10), pwd varchar(10), email varchar(20) ) insert into users values(1,'shunping','shunping','aa@163.com'); insert into

  • CI框架数据库查询之join用法分析

    本文实例讲述了CI框架数据库查询之join用法.分享给大家供大家参考,具体如下: 用 A表中的每个ID 去查询这个 ID 在 people 表中的信息.语句如下: $this->db->from('A'); $this->db->join('B', 'sites.id = B.id'); 用 A表中的每个ID 去查询这个 ID 在 B表中的信息. 注意SQL的约定,如果一个列名在二张表中是重复的,你需要在列名前加上表名和一个"."号.因此sites.id在位置桌

  • php中CI操作多个数据库的代码

    其实,这不是什么难事,因为刚入手CI,所以还是费了一番周折.好在有手册. 找到数据库配置文件,添加一个新的库的连接信息.$config[XX]. 在控制器里边, a) $this->xx = $this->load->database('XX', TRUE) tip:XX表示你配置的数据库信息数组的键名,后边建议设置为TRUE,分别表示返回连接ID和启用ActionRecord类 b) 然后在该控制器里边你就可以用 $this->xx->query()来查询你的另一个库的数据

  • codeigniter自带数据库类使用方法说明

    初始化数据库类 依据你的数据库配置载入并初始化数据库类: 复制代码 代码如下: this->load->database(); 被载入之后你可以在任何地方使用它. 以对象形式返回查询结果 复制代码 代码如下: $query = $this->db->query('SELECT name, title, email FROM my_table'); foreach ($query->result() as $row){    echo $row->title;    ec

  • codeigniter数据库操作函数汇总

    网上倒是有不少Codeigniter数据库操作的介绍,这里做一个汇总. 复制代码 代码如下: //查询: $query = $this->db_query("SELECT * FROM table"); ================================== //result() 返回对象数组$data = $query->result(); //result_array() 返回数据$data = $query->result_array(); //r

  • CI框架AR数据库操作常用函数总结

    本文实例讲述了CI框架AR数据库操作常用函数.分享给大家供大家参考,具体如下: 1.查询表记录 $this->db->select(); //选择查询的字段 $this->db->select_max(); $this->db->select_min(); $this->db->select_avg(); $this->db->select_sum(); $this->db->from(); //选择表名 $this->db-&

  • 让CodeIgniter数据库缓存自动过期的处理的方法

    CodeIgniter框架是一个非常小巧的PHP框架.CI自带数据库文件缓存,但按官方的说法,缓存设置后永不过期,除非你调用方法主动删除. Cache files DO NOT expire. Any queries that have been cached will remain cached until you delete them. 感觉太弱智了,非常不方便. 修改一下db类,在开启缓存时设置一个过期时间,到期自动缓存自动失效. 1:CI database/DB_dirver.php

  • CI框架中数据库操作函数$this->db->where()相关用法总结

    本文实例总结了CI框架中数据库操作函数$this->db->where()相关用法.分享给大家供大家参考,具体如下: CI 框架数据库操作函数 this->db->where() 的使用 1) $this->db->where('MATCH (field) AGAINST ("value")', NULL, FALSE) 如果把$this->db->where() 接受可选的第三个参数设置为 FALSE, CodeIgniter 将不会为

  • CI框架出现mysql数据库连接资源无法释放的解决方法

    本文实例分析了CI框架出现mysql数据库连接资源无法释放的解决方法.分享给大家供大家参考,具体如下: 使用ci框架提供的类查询数据: $this->load->database(); $query = $this->db->query($sql); 程序运行一段时间之后,报错,告知数据库too many connections 很明显MySQL数据库连接资源超过了 max_connections 设定值.立马在每个查询之后,添加资源释放脚本: $this->db->c

  • CI框架入门示例之数据库取数据完整实现方法

    本文实例讲述了CI框架入门示例之数据库取数据完整实现方法.是写给初学者看的,这是最简单可以调通的例子.分享给大家供大家参考.具体实现方法如下: 1.下载CI框架 2.配置 database.php配置: 为数据库服务器设置 connection 参数: 复制代码 代码如下: $db['default']['hostname'] = "your-db-host";  $db['default']['username'] = "your-username";  $db[

  • 新浪SAE云平台下使用codeigniter的数据库配置

    由于新浪SAE对文件权限的限制,cache目录无法修改权限,因此原版Codeigniter无法直接使用.可以尝试codeIgniter 2.10 for SAE:http://code.google.com/p/ci-sae/. 在database.php中配置如下: 复制代码 代码如下: $db['default']['hostname'] = SAE_MYSQL_HOST_M;$db['default']['username'] = SAE_MYSQL_USER;$db['default']

随机推荐