我正在使用 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 配置文件中。