在CodeIgniter中,在$this->db->query()
和$this->db->select()
中,我们都可以从表中选择行。任何人都可以总结一下这个区别吗?
我们可以使用$this->db->query()
运行任何查询。那么最新的使用$this->db->select()
??我们为什么需要它?
在CodeIgniter中,在$this->db->query()
和$this->db->select()
中,我们都可以从表中选择行。任何人都可以总结一下这个区别吗?
我们可以使用$this->db->query()
运行任何查询。那么最新的使用$this->db->select()
??我们为什么需要它?
根本不知道CodeIgniter,这个名字将它全部带走。通过$this->db->select()
您可以构建并执行SELECT
查询。如果有类似的方法可用,这将是有意义的,如$this->db->update()
和$this->db->delete()
。
$this->db->query
看起来是适合定制的查询(你不应该,这时候可用)
编辑:
望着文档,它现在很清楚的是,方法$this->db->select
是查询建设和链接,在这里你可以使用一个聪明的系统,而无需了解SQL,你居然要逃跑,并使用$this->db->query
使用构建查询来选择数据的一个组成部分为您提供简单的书写查询。您可以始终手动编写查询并使用$this->db->query()
执行它,但这将是一项乏味的任务。相反,您可以使用Active Record类来为您提供魔法。另外,它也会为你逃跑。 当您使用Active Record时,CodeIgniter最终将使用$this->db->query()
执行查询,当您使用类似$this->db->get()
的方式告诉它获取数据时。
请参阅该网页上的前两段使用的Active Record http://codeigniter.com/user_guide/database/active_record.html
$this->db->select()
的一些其他的好处只是建立查询的一部分;它属于Active Record类,事实上,单独使用它是没有意义的,因为它只是创建了"SELECT field,field1,field3
“零件,没有别的。
您需要所有其他零件来构建完整查询,并调用->get()
法,对,检索结果
$this->db->query()
仅仅是一个函数帮手,让你在运行查询,你把它作为一个参数
重要的区别:。活动记录自动转义查询,而$this->db->query()
没有按” t,因此您应该对各个变量调用$this->db->escape()
或使用占位符运行它:
$sql = "INSERT INTO table (field1,field2) VALUES (?,?)";
$query = $this->db->query($sql,array('asd','lol'));
我觉得跟
$this->db->query('YOUR QUERY HERE');
您可以指定完整的查询与和
$this->db->select()
这是您指定的字段的ActiveRecord的一部分来选择
你为什么要问这是一个问题吗?谷歌的这种情况下,你的朋友... – thomaux
当我正在与我的项目工作,这个疑问提出。所以我想澄清它:) –