CodeIgniter MSSQL соединение - PullRequest
       19

CodeIgniter MSSQL соединение

4 голосов
/ 29 декабря 2011

Я работаю над веб-проектом, который должен быть развернут на 64-битной машине Windows 2008 Server под управлением IIS 7.5 и PHP 5.3.8. База данных в системе - Microsoft SQL Server 2008 R2. Я разрабатываю приложение на платформе CodeIgniter 2.1.0, и я немного озадачен тем, чтобы заставить его подключаться к SQL Server.

Я пытался использовать драйверы баз данных MSSQL, ODBC и SQLSRV и обнаружил три отдельные ошибки для каждого отдельного драйвера.

Вот моя конфигурация для ODBC:

$db['default']['hostname'] = 'SA';
$db['default']['username'] = 'petre';
$db['default']['password'] = 'start';
$db['default']['database'] = 'petre';
$db['default']['dbdriver'] = 'odbc';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

У меня есть DNS для SA, определенный в Источниках данных, и я уверен, что имя пользователя и пароль действительны, и что сервер принимает Смешанную аутентификацию (аутентификация Windows + SQL).

Я автоматически загружаю библиотеку БД, и для любой доступной страницы я получаю:

Unable to connect to your database server using the provided settings.
Filename: C:\inetpub\wwwroot\system\database\DB_driver.php
Line Number: 124

Если я пытаюсь подключиться через MSSQL, я просто получаю пустую страницу, несмотря ни на что.

Если я пытаюсь использовать SQLSRV, используя следующие параметры:

$db['default']['hostname'] = '127.0.0.1';
$db['default']['username'] = 'petre';
$db['default']['password'] = 'start';
$db['default']['database'] = 'petre';
$db['default']['dbdriver'] = 'sqlsrv';

Несмотря на то, что я ссылаюсь на файл DLL sqlsrv в php.ini, я получаю следующее сообщение:

PHP Fatal error:  Call to undefined function sqlsrv_connect() in C:\inetpub\wwwroot\system\database\drivers\sqlsrv\sqlsrv_driver.php on line 76

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

Я ищу решение только для одного драйвера БД - все, что позволяет подключить его, вполне подойдет. У кого-нибудь есть советы по решению этой проблемы?

Ответы [ 2 ]

3 голосов
/ 17 ноября 2012

Для x86 win скачать http://www.microsoft.com/en-us/download/details.aspx?id=20098 для использования с:

$db['default']['dbdriver'] = 'sqlsrv';
use the php_sqlsrv_XX_ts_vcX.dll in php.ini extension

, если ваш веб-сервер и сервер баз данных не находятся на одном сервере с вашим приложением, установите это:

http://go.microsoft.com/fwlink/?LinkID=188400&clcid=0x409

и linux в качестве веб-сервера:$ db ['default'] ['dbdriver'] = 'mssql';

download & install = php5-sybase + freetds
<br/>edit /usr/local/etc/freetds.conf
<br/>create pdo_dblib.so & php_mssql.so (if not allready exist on your extension dir), and apply to php.ini

sudo /etc/init.d/apache2 restart

и просто не забудьте разрешить подключение к вашей БД (порт по умолчанию для mssql - 1433)

2 голосов
/ 31 декабря 2011

Ошибка, которую вы показываете для драйвера SQLSRV, подразумевает, что DLL никогда не загружается.Что говорит ваш php_info ()?

Кроме того, у вас установлен клиент SQL Server Native Access (SNAC) 10?Драйвер SQLSRV требует этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...