数据库操作无非是CRUD,用非装逼的语言来说就是增删改查。也许这一节会讲的很泛泛,或者很多人看不懂,没关系,大致的看看,知道是这么回事就好,继续往后看,后面会讲实例,这些枯燥而又抽象的东西可以先跳过,慢慢就会明白了。而且这部分内容CI手册讲的很全面,我也没什么好方式讲的很通俗易懂,索性不重复造那么大的轮子。

连接数据库

想要操作数据库,首先要确认已经配置好数据库连接设置,这点在安装部分的最下面已经讲过,不再重复。

虽然配置好了,但是文件如何加载此类配置?在相应的控制器或者模型里对应的位置添加

$this->load->database();

一般是在模型的构造函数里添加此代码,这样只要调用了该模型,所有控制器和该模型内的其他函数都可以连接数据库。

如果你不知道什么是控制器、模型等,请按我如下操作:

打开 application/models 文件夹新建一个文件 model.php,代码如下:

<?php

class Model extends CI_Model {

public function __construct()

{

$this->load->database();

}

}

读取数据库内容

以上连接数据库的操作都设置好之后,我们就可以来利用CI自带的Active Record模式 来读取数据库内容了。

$query = $this->db->get('news');

return $query->result_array();

get()是用来获取数据库里指定表的内容,没加限定的where之类的,就是获取所有内容。

result_array()意思为返回数组形式的结果集,不加array就是返回对象形式的,更详细的可以参见 Active Record 类 这里不做过多详解。

return是函数内用来返回结果的操作,也可以赋值、var_dump 等之类操作查看$query->result_array();的内容

我一般习惯这样写,比较懒省事:

$query = $this->db->get('news')->result_array();

return $query;

看个人使用喜好了。

插入新数据内容

可以用数组的形式通过$this->db->insert()插入数据,第一个参数为插入数据的表名,第二个参数为数组,键名对应数据表字段名,后面是数据。

$data = array(

'title' => 'My title' ,

'name' => 'My Name' ,

'date' => 'My date'

);

$this->db->insert('mytable', $data);

将执行如下SQL语句: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date')

这样写起来是不是比直接写sql来的要简明的多?

更新数据内容

$data = array(

'title' => $title,

'name' => $name,

'date' => $date

);

$this->db->where('id', $id);

$this->db->update('mytable', $data);

生成:

UPDATE mytable

SET title = '{$title}', name = '{$name}', date = '{$date}'

WHERE id = $id

和插入的代码相比,就多了一个where条件,更新特定条目,不加where就更新所有表内内容了。虽然where和update不在同一行,但是一串数据库的操作会排在一起执行的,这个不用担心。

删除数据内容

$this->db->where('id', $id);

$this->db->delete('mytable');

生成:

DELETE FROM mytable

WHERE id = $id

这里和上面的更新类似,只是加了where条件,没有数组传入。

这样就是基本的数据库增删改查操作,这里只是大致的讲了下,没详细的讲解,以后有时间慢慢完善吧,大家可以参见 Active Record 类

CodeIgniter - 数据库的增删改查的更多相关文章

  1. ThinkPHP实现对数据库的增删改查

    好久都没有更新博客了,之前老师布置的任务总算是现在可以说告一段落了,今天趁老师还没提出其他要求来更新一篇博客. 今天我想记录的是我之前做项目,自己所理解的ThinkPHP对数据库的增删改查. 首先要说 ...

  2. Android学习---数据库的增删改查(sqlite CRUD)

    上一篇文章介绍了sqlite数据库的创建,以及数据的访问,本文将主要介绍数据库的增删改查. 下面直接看代码: MyDBHelper.java(创建数据库,添加一列phone) package com. ...

  3. Android 系统API实现数据库的增删改查和SQLite3工具的使用

    在<Android SQL语句实现数据库的增删改查>中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用. 系 ...

  4. Android SQL语句实现数据库的增删改查

    本文介绍android中的数据库的增删改查 复习sql语法: * 增 insert into info (name,phone) values ('wuyudong','111') * 删 delet ...

  5. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  6. 【转载】通过JDBC对MySQL数据库的增删改查

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  7. 利用API方式进行数据库的增删改查

    /* 将数据库的增删改查单独放进一个包 */ package com.itheima28.sqlitedemo.dao; import java.util.ArrayList; import java ...

  8. MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  9. Asp.net MVC4 使用EF实现数据库的增删改查

    EF的使用 步骤: (1)将EF添加到项目:在Model右击添加新建项 找到ADO.NET实体数据模型,接着... (2)实现数据库的增删改查       查询 (因为在Model中已经添加EF实体了 ...

随机推荐

  1. c3p0配置详解

    数据库连接池C3P0框架是个非常优异的开源jar,高性能的管理着数据源,这里只讨论程序本身负责数据源,不讨论容器管理. 一.实现方式: C3P0有三种方式实现: 1.自己动手写代码,实现数据源 例如: ...

  2. DataFrame转矩阵Np-Array

    DataFrame.as_matrix(columns=None)¶ Convert the frame to its Numpy-array representation.

  3. Silverlight实例教程 - 自定义扩展Validation类,验证框架的总结和建议(转载)

    Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...

  4. linux的设置ip连接crt,修改主机名,映射,建文件

    1.修改IP(或者vim vi /etc/sysconfig/network-scripts/ifcfg-eth0) 2.连接 crt 3.修改主机名 用vim 编辑 /etc/sysconfig/n ...

  5. github和bitbucket

    注册一个github跟注册一个163的邮箱一样容易 页面中 div方块的 布局和 尺寸, 主要是考虑功能/ 结构/布局, 基本上与其中的内容 的多少无关: 即使内容/文字很少, 也还是要那么宽的尺寸 ...

  6. 最近打算体验一下discuz,有不错的结构化数据插件

    提交sitemap是每位站长必做的事情,但是提交到哪里,能不能提交又是另外一回事.国内的话百度是大伙都会盯的蛋糕,BD站长工具也会去注册的,可有些账号sitemap模块一直不能用,或许是等级不够,就像 ...

  7. 第三方br查询工具害人不浅

    第三方br查询工具害人不浅,查询的时候会大批量调用百度的数据库,为什么说是大批量查询呢? 首先是自己查询,心急的站长恨不得下一次刷新br时数值会有所提高,不是那么急的也会一天查一次或几天一次,记录网站 ...

  8. Spring AOP使用整理:自动代理以及AOP命令空间

    三.自动代理的实现 1.使用BeanNameAutoProxyCreator 通过Bean的name属性自动生成代理Bean. <bean class="org.springframe ...

  9. 安装 openSUSE Leap 42.1 之后要做的 8 件事

    导读 openSUSE Leap 确实是个巨大的飞跃,它允许用户运行一个和 SUSE Linux 企业版拥有同样基因的发行版.和其它系统一样,为了实现最佳的使用效果,在使用它之前需要做些优化设置. 下 ...

  10. 在VMware的虚拟机平台上如何进行网络设置

    1.本文构建的是这样一个网络,有两台winXP系统的PC,处于同一局域网内,PC里 都装有VMware虚拟机,虚拟机上跑的是Redhat Linux 9,我们想要在winXP系统下访问本机的虚拟机li ...