我刚刚使用的活动记录开始(之前我只写了人工查询,因为我是如此习惯了)。
我一直在寻找ion_auth的代码,我看到,在一些地方,即使采用活动记录琴弦已经逃脱,
即
->where($this->identity_column, $this->db->escape_str($identity))
->where($this->tables['groups'].'.name', $this->db->escape_str($group))
事情是,我还没有在任何地方逃,我已经使用的活动记录,因为文件上说的活动记录自动转义字符串。
我的问题,使用活动记录时,是否有某些情况下,您应该逃避字符串?
从CodeIgniter用户指南:
除了简单, 使用活动记录的一个主要好处是,它允许您创建数据库独立的应用程序,因为由不同的数据库适配器生成的查询语法。 它还允许更安全的查询,因为值由系统自动转义。
ion_auth的创建者可能已经转义的字符串特别的原因,但如果你使用的是活动记录,笨查询自动转义。
但也有查询中“看”像他们可能是活动记录,这需要进行转义。 这里是他们的名单从CodeIgniter用户指南,再次。
通常你可以让笨处理。 在某些情况下,如果你使用的是活动记录建立一个更复杂的查询(例如: $this->db->where('(some sql where clause)')
您可以使用DB库的逃生方法。
不,这是没有必要使用逃生。 我曾尝试与文字混合单引号和双引号也一大堆的HTML标签的格式不同,所有的工作完全正常。