笨活动记录,当逃跑,如果在所有(codeigniter active record, when to

2019-10-17 08:15发布

我刚刚使用的活动记录开始(之前我只写了人工查询,因为我是如此习惯了)。

我一直在寻找ion_auth的代码,我看到,在一些地方,即使采用活动记录琴弦已经逃脱,

 ->where($this->identity_column, $this->db->escape_str($identity))
 ->where($this->tables['groups'].'.name', $this->db->escape_str($group))

事情是,我还没有在任何地方逃,我已经使用的活动记录,因为文件上说的活动记录自动转义字符串。

我的问题,使用活动记录时,是否有某些情况下,您应该逃避字符串?

Answer 1:

从CodeIgniter用户指南:

除了简单, 使用活动记录一个主要好处是,它允许您创建数据库独立的应用程序,因为由不同的数据库适配器生成的查询语法。 它还允许更安全的查询,因为值由系统自动转义。

ion_auth的创建者可能已经转义的字符串特别的原因,但如果你使用的是活动记录,笨查询自动转义。

但也有查询中“看”像他们可能是活动记录,这需要进行转义。 这里是他们的名单从CodeIgniter用户指南,再次。



Answer 2:

通常你可以让笨处理。 在某些情况下,如果你使用的是活动记录建立一个更复杂的查询(例如: $this->db->where('(some sql where clause)')您可以使用DB库的逃生方法。



Answer 3:

不,这是没有必要使用逃生。 我曾尝试与文字混合单引号和双引号也一大堆的HTML标签的格式不同,所有的工作完全正常。



文章来源: codeigniter active record, when to escape, if at all