SQL 错误:[unixODBC][驱动程序管理器]未找到数据源名称,且未指定默认驱动程序

SQL 错误:[unixODBC][驱动程序管理器]未找到数据源名称,且未指定默认驱动程序

我正在使用 Teradatas ODBC 驱动程序在 RedHat 服务器上运行 PHP 脚本。

<?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 信息的文件,并且在.文件名前面添加了。

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

它应该正在寻找文件/opt/teradata/client/ODBC_64/odbcinst.ini

有人知道如何纠正这个问题吗?

答案1

您只需要设置并导出ODBCSYSINI环境变量——

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

或者

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

php注意 -在运行时必须设置此环境变量,无论是php从其启动环境继承设置,还是将此设置添加到 PHP 配置文件中。

相关内容