php - Codeigniter $this->db->field_data 跨多个模式获取字段的问题
问题描述
我正在 Code-igniter 中连接到 PostgreSQL 数据库,并尝试使用该$this->db->field_list()
方法访问我的表的字段名称。问题是它似乎正在查看所有模式并从不同模式中具有相同名称的多个表中提取字段。结果是两个表中唯一字段的列表,这不是我想要的。
我怀疑该field_list()
方法在幕后是这样做的:
SELECT ... FROM information_schema.COLUMNS WHERE table_name = 'my_table'
但不幸的是,我有my_table
多个模式。
我需要它做:
SELECT ... FROM information_schema.COLUMNS WHERE table_name = 'my_table' AND table_schema = 'my_schema_1'
我可以直接查询信息架构并获得此功能的等效项,但我只是对为什么它无法识别我的数据库配置文件中定义的架构感到困惑:
$db['default'] = array(
'dsn' => 'pgsql:host=my_host_name;port=5432;dbname=mydb;',
'hostname' => '',
'username' => 'user',
'password' => 'password',
'database' => 'mydb',
'schema' => 'my_schema_1',
'dbdriver' => 'pdo',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => TRUE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
我需要在 DSN 中定义架构还是我在这里做错了什么?
我尝试在网上寻找替代的 DSN 字符串以供使用,但我没有看到可以为 pgSQL 定义模式的字符串。
解决方案
推荐阅读
- python - Python: Create new binary list based on some condition between two pandas series
- arrays - 如何使用第二个堆栈找到未排序堆栈的最小可能操作数?
- keras - 如何在lstm中设置输入层的长度
- javascript - Cloud Firestore 优化数据库设置以实现最少的读/写操作
- python - 用基于索引的另一个数据帧中的行覆盖熊猫数据帧中的某些行
- python - 使用python从二进制图像中裁剪感兴趣区域
- python - 为什么有时我必须在 Pandas 中提供数据集的完整路径才能读取它,而有时它仅通过提供数据集文件名来工作?
- java - 将 FFT 算法添加到 android studio
- php - 我无法在 laravel 帮助文件中“使用”或“命名空间”
- c# - SQL 和 C#:ExecuteNonQuery:连接属性尚未初始化