ci mysql操作_CI中的数据库操作

转载于:http://blog.sina.com.cn/s/blog_76e7bdba01016p2p.html

CI中第一次连接数据库,在控制器或模型的构造函数里输入以下语句

$this->load->database();

就不需要重复连接, 在那个控制器或模型就可以做任意多次的查询。 查询操作(等同select) 方法一:

$query = $this->db->get('sites'); //sites为表名

这是一个“select *”查询,目标是site表。换句话说,它取回所有的行 也可用下面这种方式写:

$this->db->from('sites');

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

如果想要得到特定的列,而不是全部列,这样做:

$this->db->select('url','name','clientid');//'url','name','clientid'为列名

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

如果排序:

$this->db->select('url','name','clientid');//'url','name','clientid'为列名

$this->db->orderby("name", "desc");

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

如果想要限制返回的行数,比如想要最初五个结果

$this->db->select('url','name','clientid');//'url','name','clientid'为列名

$this->db->orderby("name", "desc");

$this->db->limit(5);

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

写where语句==的情况

$this->db->where('clientid', '1'); //clientid属性 "1"为属性值

!=的情况

$this->db->where('url !=', 'www.mysite.com');

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

where后几个条件的可以写几个where 如

$this->db->where('url !=','www.mysite.com');

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

WHERE…OR的情况

$this->db->where('url !=','www.mysite.com' );

$this->db->orwhere('url !=','www.anothersite.com' );

连接表

$this->db->from('sites');

$this->db->join('people', 'sites.peopleid = people.id');

写个完整的查询

$this->db->select('url','name','clientid','people.surname AS client');

$this->db->where('clientid', '3');

$this->db->limit(5);

$this->db->from('sites');

$this->db->join('people', 'sites.clientid = people.id');

$this->db->orderby("name", "desc");

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

方法二:

$this->db->query("SELECT id, name, url FROM sites WHERE 'type' = 'dynamic'");

可以像下面的语句一样写查询放条件

$condition = "client ='3' AND (type ='dynamic' OR type='static')";

$this->db->where($condition);

注意:双引号是定义变量的.不要混淆单引号和双引号. 显示查询结果 在查询语句后加上下面这句话

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

如果有多个结果,他们被保存在$row对象中,可以用一个foreach循环:

foreach ($query->result() as $row)

{

print $row->url;

print $row->name;

print $row->client;

}

如果我们只想要一个结果,它可以作为一个对象被返回, 或在这里当做一个$row数组

if ($query->num_rows() > 0)

{

$row = $query->row_array();

print $row['url'];

print $row['name'];

print $row['client'];

}

增加数据(等同insert) 方法一:先建个数组,把要insert的值放在数组里.如下:其中url/name/clientid/type均为数据表属性值

$data = array(

'url' => 'www.mynewclient.com',

'name' => 'BigCo Inc',

'clientid' => '33',

'type' => 'dynamic'

);

然后使用$this->db->insert('sites', $data); 把数据增加到sites表中.

方法二:使用$this->db->set() 设置每一个值

$this->db->set('url', 'www.mynewclinet.com');

$this->db->set('name', 'BigCo Inc');

$this->db->set('clientid', '33');

$this->db->set('type', 'dynamic');

$this->db->insert('sites');

更新(等同update) 先定位要更新的记录,再update

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

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

$this->db->set()方式也可以,和新增数据应该是一样的.

CI 提供几个函数检查数据库是否成功执行了相关操作。 最有用的:

$this->db->affected_rows();

在执行insert或update后应该返回'1'-但是如果我正在update一批记录的话,可能返回更大的一个整数。 如果我正在insert一笔新的记录, 在实际产生它之前,

我们并不知道ID具体的值。如果我需要引用新的记录的ID, 使用下列语句:

$new_id_number = $this->db->insert_id();

删除(等同delete)

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值