【发布时间】:2019-02-05 21:07:26
【问题描述】:
我正在尝试学习 CodeIgniter,只是尝试使用 MVC 架构的 model 组件。
我第一次尝试使用查询生成器,但发现它不断在我的表/列名称中添加引号。一种解决方法是在它们上使用所有大写字母并修复它。我讨厌全部大写,所以我决定不使用查询生成器,而是使用$this->db->query();。
我现在遇到的问题是我必须不断地用表名编写架构:SELECT * FROM schema.table_name。我想避免为我需要引用的所有表写schema.。
我浏览了文档并看到了a configuration for setting schemas,但它似乎只与 PostgreSQL 和 ODBC 驱动程序一起使用。我仍然尝试了它,但它当然没有像我预期的那样工作。我仍然收到一条错误消息,提示找不到该表。
注意事项:
我以我的用户身份登录,但我需要以其他用户身份运行查询 - 即以 user1 身份登录但需要以 user2.table_name 身份运行查询。
【问题讨论】:
-
@ 架构:CI 3.0 的文档说:
The database schema, defaults to ‘public’. Used by PostgreSQL and ODBC drivers. -
@Vickel 我已经通过
$db['default']['_protect_identifiers'] = false;解决了引号问题。您是否知道避免需要不断提供架构的方法?
标签: php oracle codeigniter schema