Я установил FreeTDS на свой Mac, но у меня есть некоторые проблемы, связанные с использованием mssql_connect
.
Во-первых, когда я запускаю tsql -CI, посмотрите, что каталог freetds.conf указан как /opt/local/etc/freetds
. У меня есть файл freetds.conf внутри этого каталога.
Затем, если я подключу так:
$connect = mssql_connect('IP_ADDRESS', 'username', 'password');
то все работает так, как ожидалось. То есть, я могу извлекать, обновлять, вставлять данные из / в любой выбранный mssql_select_db()
DB с помощью mssql_select_db()
.
Если я попытаюсь подключиться следующим образом:
$connect = mssql_connect('DSN_NAME', 'username', 'password');
где DSN_NAME
соответствует источнику данных, указанному в моем файле freetds.conf, тогда я получаю сообщение об ошибке и unable to connect to server: DSN_NAME
могу 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()
для указания каталога.
Есть идеи?
Спасибо.