我已经在我的Mac上安装了FreeTDS,但是使用mssql_connect连接时出现了一些问题。
首先,当我运行tsql -C时,我看到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');
当DSN_NAME
匹配我在freetds.conf文件中指定的数据源时,我会收到一个错误信息:无法连接到服务器: DSN_NAME
,这告诉我PHP没有正确地看到我的freetds.conf文件的路径。
然而,如果在我的调用之前添加:
putenv("FREETDSCONF=/opt/local/etc/freetds/freetds.conf");
然后一切都如预期运行。这告诉我我的freetds.conf文件格式正确。
我搜索了很多关于如何找到PHP认为freetds.conf文件所在路径的方法,但是我找不到。
最后,有一些原因使我不想直接使用IP地址进行连接,也不想被强制使用putenv()方法来指定目录。
有什么想法吗?
谢谢。