Проблема с Codeigniter $ this-> db-> field_data, получающей поля в нескольких схемах - PullRequest
0 голосов
/ 04 апреля 2019

Я подключаюсь к базе данных 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.

...