我已经在我的 Mac 上安装了 FreeTDS,但我在使用mssql_connect
.
首先,当我运行 tsql -CI 时,看到 freetds.conf 目录列为/opt/local/etc/freetds
. 我在这个目录中有一个 freetds.conf 文件。
接下来,如果我这样连接:
$connect = mssql_connect('IP_ADDRESS', 'username', 'password');
然后一切都按预期工作。也就是说,我可以从我选择的任何数据库中检索、更新、插入数据mssql_select_db()
。
如果我尝试这样连接:
$connect = mssql_connect('DSN_NAME', 'username', 'password');
whereDSN_NAME
匹配我的 freetds.conf 文件中指定的数据源,然后我收到一个错误,unable to connect to server: DSN_NAME
它告诉我 PHP 没有正确看到我的 freetds.conf 文件的路径。
但是,如果在我打电话之前我添加:
putenv("FREETDSCONF=/opt/local/etc/freetds/freetds.conf");
然后一切都按预期工作。这告诉我我的 freetds.conf 文件格式正确。
我已经搜索了所有关于如何找到 PHP认为freetds.conf 文件所在的路径,但我找不到。
最后,有一些原因我不想在我的连接中直接使用 IP 地址,以及为什么我不想被迫使用putenv()
指定目录的方法。
有任何想法吗?
谢谢你。