1

Я запускаю сценарий PHP на сервере RedHat с использованием драйверов Teradatas ODBC.

<?php

$conn = odbc_connect("Teradata", "username", "password");
$result = odbc_exec($conn, 'SELECT count(*) FROM table');

while (odbc_fetch_row($result)) {
    for ($i = 1; $i <= odbc_num_fields($result); $i++) {
        echo "Result is ".odbc_result($result,$i);
    }
}

?>

Я запустил strace для скрипта и обнаружил, что он ищет .ini файлы, которые хранят информацию DNS в неправильном месте, а также помещает a . перед именем файла.

open("/home/a-taslam/.odbcinst.ini", O_RDONLY) = -1 ENOENT (No such file or directory)

Нужно искать файл по адресу /opt/teradata/client/ODBC_64/odbcinst.ini

Кто-нибудь знает, как это исправить?

1 ответ1

2

Вам просто нужно установить и экспортировать переменную среды ODBCSYSINI -

export ODBCSYSINI=/opt/teradata/client/ODBC_64/

или же

set ODBCSYSINI=/opt/teradata/client/ODBC_64/ ; export ODBCSYSINI

Примечание. Эта переменная среды должна быть установлена для php во время ее работы, независимо от того, наследует ли php настройку из среды запуска или вы добавили эту настройку в файлы конфигурации PHP.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .