Я подключаюсь к базе данных PostgreSQL в Code-igniter и пытаюсь использовать метод $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
);
DoМне нужно определить схему в DSN или что я здесь не так делаю?
Я пытался искать альтернативные строки DSN в Интернете, но не вижу той, где можно определить схему дляPGSQL.