美文网首页
CI数据库操作

CI数据库操作

作者: yzw12138 | 来源:发表于2017-12-15 14:55 被阅读0次

一 数据库配置

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '123456',
    'database' => 'demo',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => TRUE,
    'db_debug' => TRUE,
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

当因为某些原因数据库无法连接时,我们可以设置故障转移,此时会连接到另一个数据库,可以设置多个故障转移库;

$db['default']['failover'] = array(
        array(
            'hostname' => 'localhost1',
            'username' => '',
            'password' => '',
            'database' => '',
            'dbdriver' => 'mysqli',
            'dbprefix' => '',
            'pconnect' => TRUE,
            'db_debug' => TRUE,
            'cache_on' => FALSE,
            'cachedir' => '',
            'char_set' => 'utf8',
            'dbcollat' => 'utf8_general_ci',
            'swap_pre' => '',
            'encrypt' => FALSE,
            'compress' => FALSE,
            'stricton' => FALSE
        ),
        array(
            'hostname' => 'localhost2',
            'username' => '',
            'password' => '',
            'database' => '',
            'dbdriver' => 'mysqli',
            'dbprefix' => '',
            'pconnect' => TRUE,
            'db_debug' => TRUE,
            'cache_on' => FALSE,
            'cachedir' => '',
            'char_set' => 'utf8',
            'dbcollat' => 'utf8_general_ci',
            'swap_pre' => '',
            'encrypt' => FALSE,
            'compress' => FALSE,
            'stricton' => FALSE
        )
    );

二 获取查询对象

  • result():返回查询结果的对象数组,失败则返回空;
  • result_array():返回一个纯粹的数组,失败则返回空;
  • row():以对象形式返回查询结果的一行,如果想返回特定行,可以用row(3)实现;
  • row_array():同row()一样,只是返回形式为数组,同样可以返回特定的行;
  • unbuffered_row():和row()方法一样,但他不会预读取所有数据到内存中,他会返回查询的行,并通过内部指针指向下一行;

返回结果辅助函数

  • num_rows():返回查询结果的行数;
  • num_fields():返回查询结果的字段数(列数);
  • free_result():释放掉查询结果所占用的资源,并删除结果的资源标识;
  • data_seek():这个方法用来设置下一个结果行的内部指针,它只有在和 unbuffered_row() 方法一起使用才有效果。它接受一个正整数参数(默认值为0)表示想要读取的下一行,返回值为 TRUE 或 FALSE 表示成功或失败。

三 查询辅助函数

  • $this->db->insert_id():插入后返回新插入数据的id;
  • $this->db->affected_rows():对于insert,updata等操作,返回表中受影响的行数;
  • $this->db->last_query():返回上一次执行的sql语句;
  • $this->db->count_all('demo'):用于获取数据库的总行数;

三 事务

  • 事务的运行:放在start和complete之间,根据查询查询执行是否成功,来判断是提交还是回滚;
$this->db->trans_start();
$this->db->query('.......');
$this->db->query('.......');
$this->db->trans_complete();
  • 严格模式:当同时运行多个事务时,有一个事务失败,所有的事务都将回滚;
$this->db->trans_strict(FALSE);
  • 错误处理:在没有在配置文件中启用db_debug时,可以用以下方法启用错误报告,并管理错误;
$this->db->trans_start();
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE)
{
    // generate an error... or use the log_message() function to log your error
}
  • 禁用事务:通过在事务前添加$this->db->trans_off()实现,禁用事务后,查询结果直接提交,忽略start和complete;
  • 测试模式:不管sql语句是否执行成功,查询都会被回滚;
$this->db->trans_start(TRUE);
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->trans_complete();
  • 手动运行事务:用$this->db->trans_begin()替代$this->db->trans_start()来实现;

相关文章

  • 关于CI框架学习的一些笔记

    ci手册:http://codeigniter.org.cn/user_guide/ CI操作数据库 查询指定字段...

  • CI基本理解

    PHP的CI框架的基本理解 控制层视图层模型层操作数据库AR操作 CI学习 访问url使用的是pathinfo 入...

  • CI学习笔记!

    ci数据库操作 CI配置多数据库连接方法1、打开根目录中的config.php文件将下面的代码复制进去 2、打开s...

  • CI数据库操作

    一 数据库配置 当因为某些原因数据库无法连接时,我们可以设置故障转移,此时会连接到另一个数据库,可以设置多个故障转...

  • CI框架基础入门(二)

    目录 载入验证类 CI汉化 创建模型 载入模型 配置数据库 防跨站 输入类 使用AR类操作数据库(增删改查) 分配...

  • Ci持续学习之旅

    (0)ci目录结构,非常清晰 主要需要操作的就是application下的M,V,C三个目录 (1)从数据库到视图...

  • MySQL数据库管理使用

    RPM安装MySQL 启动数据库操作: 重启数据库操作: 停止数据库操作: 查看数据库状态: 登录数据库操作: 退...

  • [PPJ_15] Django-数据库配置、数据序列化、视图创建

    目录结构 一、Django数据库配置 1.数据库迁移 切换到项目目录D:\CI_Env\Django_Restfu...

  • Django—***医生数据管理

    一、新建数据库 字符集:utf8 --UTF-8 Unicode 排序规则:utf8_general_ci 数据库...

  • python 教程笔记day10

    Python3 MySQL 数据库连接 数据库连接 创建数据库表 数据库插入操作 数据库查询操作 数据库更新操作 ...

网友评论

      本文标题:CI数据库操作

      本文链接:https://www.haomeiwen.com/subject/ofshwxtx.html