在Kohana 3中,您现在可以在查询中绑定命名参数,但如何转义我无法绑定的参数?

ale*_*lex 0 php kohana kohana-3

在Kohana 3中,我可以在查询中绑定一个参数

$query = 'SELECT name FROM users WHERE id = :id';
Run Code Online (Sandbox Code Playgroud)

这很整洁,但有时我希望其他东西可以配置,比如表名.当我为表名使用命名参数时,它会失败.我刚刚在这些情况下构建字符串.

我的问题是,在进行这种字符串构建时,如何才能逃脱潜在的不良角色?在Kohana 2.x中,你可以这么做$this->db->escape()但是因为Kohana 3完全不同,我想有一种新的方法吗?

Wil*_*den 5

只是为了添加Mark Byers的答案,表名参数化失败的原因是参数作为转义,而表名是标识符.可能发生的是表名被包装在引号中,而应该用反引号包装.

然而,正如马克所说,逃避表名的需要暗示了糟糕的设计.它们应该是硬编码的,或者存储在某些配置文件中,其内容可以信任,无论如何都不需要转义.试图覆盖所有基础,以至于您不相信自己的配置,这很可能是浪费时间.