gpt4 book ai didi

php - 使用查询生成器有什么好处

转载 作者:行者123 更新时间:2023-11-29 01:45:47 26 4
gpt4 key购买 nike

请原谅我对此事的无知,但使用查询生成器有什么意义呢?写一行 SQL 而不是 3 行 AR 代码不是更简洁吗:

$this->db->query(" SELECT title, contents FROM data WHERE id = 2 ");

代替:

$this->db->select('title, contents');
$this->db->from('data');
$this->db->where('id', 2);

它对我来说似乎更冗长,但话又说回来,我对查询生成器一无所知,所以我可能会遗漏一些东西。真的很想知道有什么好处。

最佳答案

如果您需要以编程方式构建您的查询,CodeIgniter 的 Active Records 比纯文本要舒服得多,

$id = 2;

//with CodeIgniter's Active Record
$this->db->select('title, contents');
$this->db->from('data');
if(isset($id))
$this->db->where('id', $id);

//without CodeIgniter's Active Record
if(isset($id))
$where = " WHERE id = {$id}";
$this->db->query(" SELECT title, contents FROM data".$where);

好的,这并没有太大变化,但是如果您对 where 子句有 10 个约束怎么办?

此外,CodeIgniter 的 Active Record 会根据您传递的数据以正确的方式(使用占位符 ?)构建字符串,即您不必手动插入 '关于查询。

编辑

@上校。 Shrapnel 说 CodeIgniter 的 Active Record 没有任何好处,因为我不同意他的观点,所以我尝试用另一个例子来强化我的论点:

让我们为 INSERT 语句做一个例子:

$array = array('A'=>'aaaa','B'=>'bbbb','C'=>'cccc');

//without CodeIgniter's Active Record
$query = "INSERT INTO my_table (";
$query.= implode(',',array_keys($array)) .')';
$query.= ......

//with CodeIgniter's Active Record
$this->db->insert('my_table',$array);

关于php - 使用查询生成器有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7216882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com