codeigniter简单查询与查询生成器(插入、更新和删除)

xqkwcwgp  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(293)

根据文档,simple\u query不会返回任何数据库结果集,也不会设置查询计时器、编译绑定数据或存储查询以进行调试。
在我的codeigniter中,我使用ci提供的查询生成器来生成查询。
那么,这些用于insert、update和delete的查询生成器的工作方式是否与simple\ u query相同,或者它们在后台的工作方式是否不同呢?

w1e3prcc

w1e3prcc1#

simple_query() 是codeigniter中唯一一个行为如您所指出的那样的数据库方法。如文档所述:“大多数用户很少使用此功能。”
除了少数例外,所有其他查询生成器方法都返回 DB_query_builder 示例a CI_DB_result 对象或-在“写”类型查询的情况下-表示成功或失败的布尔值。少数异常返回整数、字符串或混合(值或false)。
所有接受输入值的方法都会转义(或者可选地不转义)所提供的值。
虽然查询生成器(qb)是一个很好的工具,但它通常不是必需的。使用 $this->db->query('your statement here'); 通常效率更高。理解qb的目标是创建一个字符串,该字符串在调用 db->query('a query string'); .
所以不用打这些。。。

$this->db->select('id, name, email');
$this->db->from('customers');
$this->db->where('id', $id)
$this->db->where('active', $is_active)
$query = $this->get();
$result = $query->result();

键入以下命令会产生与上面完全相同的结果,因为它直接提供qb在上面代码中构建的查询字符串(查询也完全转义了。)但它执行的代码要少很多(用更少的打字。)

$query = $this->db->query("Select id, name, email from customers where id = ? and active = ?", [$id, $is_active]);
$result = $query->result();

这是一个使用查询绑定的示例
研究核心源代码(主要在“驱动程序”文件中)将向您展示如何使用 simple_query() 是适当和有用的。

相关问题