2010-08-16 4 views
6

Я использую Debian. У меня установлен unixODBC, а также FreeTDS. Я использую PHPunixODBC Freetds PHP Задача

Я прочитал несколько How-Tos и застрял в проблеме.

Я тестировал FreeTDS с помощью tsql, и он работает.

Я тестировал unixODBC с помощью isql, и он работает.

Когда я создал скрипт в PHP и попытался получить доступ к базе данных, я получаю следующие ошибки.

Фатальная ошибка: Вызов неопределенной функции odbc_connect()

я нашел нескольких файлах php.ini. Какой из них использует Apache2? Есть что-то там, которое нужно установить.

Есть ли какие-то настройки, которые я пропустил, настроившись на то, что не было в How-Tos?

Вся помощь очень ценится.

+0

Обычно файл php.ini для cli и apache2 – jjclarkson

ответ

3

Вам может потребоваться предоставить переменные среды, указывающие на расположение файлов конфигурации ODBC:

<?php 
putenv("FREETDSCONF=/etc/freetds/freetds.conf"); 
putenv("ODBCSYSINI=/etc/odbcinst.ini"); 
putenv("ODBCINI=/etc/odbc.ini"); 

Это работает для меня, чтобы подключиться к нескольким базам данных ODBC. (Ваши файлы конфигурации могут быть где-то в другом месте)

+0

Hi - Эти переменные могут потребоваться. Но непосредственной проблемой является «Вызов неопределенной функции odbc_connect()». Sanmai правильно - OP сначала необходимо установить php5-mssql и/или php5-odbc. – paulsm4

+0

@ shrikant-soni заявил, что он установил их в своем комментарии, я предполагаю, что он попробовал это, и это не сработало, возможно, изменив сообщение об ошибке ??? – jjclarkson

+0

Возможно, он не перезапустил Apache после установки. – sanmai

2
  1. Вам необходимо установить php5-mssql и/или php5-odbc. Я бы порекомендовал вам установить оба точно.

  2. Файлы от /etc/php5/conf.d/ и /etc/php5/apache2/php.ini используются для хранения настроек конфигурации PHP в Debian.

+0

Не работает. Определите шаги, которые вы сказали, но не работают! –

Смежные вопросы