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');
where がDSN_NAME
freetds.conf ファイルで指定されたデータソースと一致すると、エラーが発生しunable to connect to server: DSN_NAME
、PHP が freetds.conf ファイルへのパスを正しく認識していないことがわかります。
ただし、電話をかける前に次のように追加します。
putenv("FREETDSCONF=/opt/local/etc/freetds/freetds.conf");
その後、すべてが期待どおりに機能します。これは、freetds.conf ファイルが正しくフォーマットされていることを示しています。
freetds.confファイルがあると PHP が判断するパスを見つける方法についてあちこち検索しましたが、見つかりません。
putenv()
最後に、接続で IP アドレスを直接使用したくない理由と、ディレクトリを指定する方法を強制的に使用したくない理由がいくつかあります。
何か案は?
ありがとうございました。