CI数据库参考-查询

一、常规查询

1、query()提交一个查询

$this->db->query('YOUR QUERY HERE');

当你执行读类型的查询(如:SELECT)时,query() 函数将以**对象**形式 返回一个结果集。 当你执行写类型的查询(如:INSERT、DELETE、UPDATE)时,函数将简单的返回 TRUE 或 FALSE 来表示操作是否成功。 你可以将函数返回的结果赋值给一个变量,这样你就可以根据这个变量来获取 数据了,像下面这样:

$query = $this->db->query('YOUR QUERY HERE');

在很多数据库里,保护表名和字段名是可取的,例如在 MySQL 数据库里使用反引号。 使用查询构造器会自动保护标识符。

二、转义查询

在提交数据到你的数据库之前,确保先对其进行转义是个非常不错的做法

1、$this->db->escape() 

这个函数会检测数据类型,仅转义字符串类型的数据。 它会自动用单引号将你的数据括起来,你不用手动添加:

$sql = "INSERT INTO table (title) VALUES(".$this->db->escape($title).")";

2、$this->db->escape_like_str() 

这个函数用于处理 LIKE 语句中的字符串,这样,LIKE 通配符('%', '_')可以被正确的转义。

三、查询绑定 

查询绑定可以简化你的查询语法,它通过系统自动的为你将各个查询组装在一起。

$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";
$this->db->query($sql, array(3, 'live', 'Rick'));

查询语句中的问号将会自动被第二个参数位置的数组的相应的值替代。

也可以使用数组的数组进行绑定,里面的数组会被转换成 IN 语句的集合:

$sql = "SELECT * FROM some_table WHERE id IN ? AND status = ? AND author = ?";
$this->db->query($sql, array(array(3, 6), 'live', 'Rick'));

上面的例子会被转换为这样的查询:

SELECT * FROM some_table WHERE id IN (3,6) AND status = 'live' AND author = 'Rick'

使用查询绑定的第二个好处是:所有的值会被自动转义,生成安全的查询语句。 你不再需要手工进行转义,系统会自动进行。

四、错误处理

$this->db->error();

要获取最近一次发生的错误,使用 error() 方法可以得到一个包含错误代码和错误消息的数组。

if ( ! $this->db->simple_query('SELECT `example_field` FROM `example_table`'))
{
    $error = $this->db->error(); // Has keys 'code' and 'message'
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值