CodeIgniter(ci框架)连接mysql数据库的增删改查操作语法
ci框架连接mysql数据库实现增删改查操作语法
配置mysql数据库
vim application/config/database.php
在system/application/config ⽂件夹和⾥⾯的config⽂件⾥已经配置了参数
$active_group = “default”;
$db[‘default’][‘hostname’] = “”; hostname: 你的数据库的位置, 举例来说, ‘localhost’ 或 IP 地址
$db[‘default’][‘username’] = “”; username和password: 使⽤者名称和密码必须有充分的权限,允许你的⽹站存取数据库中的数据。
$db[‘default’][‘password’] = “”;
$db[‘default’][‘database’] = “”; database: 你的数据库的名字, 举例来说, ‘websits’
$db[‘default’][‘dbdriver’] = “”; dbdriver: 你正在使⽤的数据库的类型 - CI可受的有选项有MySQL、MySQLi、 Postgre SQL、ODBC和MS SQL
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.qipa250’);
$this->db->where(‘id >’, ‘3’);
where后⼏个条件的可以写⼏个where 如
$this->db->where(‘url !=’,‘www.qipa250’);
$this->db->where(‘id >’, ‘3’);
WHERE…OR的情况
$this->db->where(‘url !=’,‘www.qipa250’ );
$this->db->orwhere(‘url !=’,‘www.anothersite’ );
连接表
$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'];
php远程连接mysql数据库print $row['name'];
print $row['client'];
}
增加数据(等同insert)
⽅法⼀:先建个数组,把要insert的值放在数组⾥.如下:其中url/name/clientid/type均为数据表属性值
$data =array(
'url'=>'wclient',
'name'=>'BigCo Inc',
'clientid'=>'33',
'type'=>'dynamic'
)
;
然后使⽤$this->db->insert(‘sites’, $data); 把数据增加到sites表中.
⽅法⼆:使⽤$this->db->set() 设置每⼀个值
$this->db->set('url','wclinet');
$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’);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论