使用MSSQL方法(freetds的,PHP和Apache在Mac OS X)(Using mssq

2019-09-20 23:31发布

我已经安装在我的Mac freetds的,但我在使用连接的一些问题mssql_connect

首先,当我运行TSQL -CI看到freetds.conf目录列为/opt/local/etc/freetds 。 我有这个目录里面freetds.conf文件。

接下来,如果我连这样的:

$connect = mssql_connect('IP_ADDRESS', 'username', 'password');

然后一切正常。 也就是说,我可以检索,更新,是从插入数据/到哪个DB我选择用mssql_select_db()

如果我尝试连接这样的:

$connect = mssql_connect('DSN_NAME', 'username', 'password');

其中DSN_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()方法来指定目录。

有任何想法吗?

谢谢。

Answer 1:

当我安装freetds的我最初使用的MacPorts。 我认为,这给了我在那里freetds.conf本来应该有的冲突。 而且即使对于freetds.conf路径时运行tsql -C是,我尝试使用,当我编译mssql.so扩展与路径PHP不会承认它的实际路径。

解决的办法是忘记freetds的MacPorts的,只是从源代码安装freetds的。 然后安装从PHP源mssql.so延伸,并确保您使用的是您的系统上(我是在OS X山狮5.3.13)的版本相同。

如果你按照指示在这个博客正是你应该不会有任何问题。

一对夫妇的最后的事情:

  • 我不跑MAMP即使说明书提到它,所以它不会不管两种方式。
  • 如果你已经通过没有安装MacPorts的freetds的,卸载使用: sudo port uninstall freetds +odbc ,然后sudo port uninstall unixODBC 。 请务必卸载freetds的所有实例。 如果你有一个以上的,您会在运行,你需要指定版本卸载卸载得到通知。


文章来源: Using mssql methods (FreeTDS, PHP and Apache on Mac OS X)