Yii + MS SQL с драйвером SQLSRV

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
KarinaTsar
Сообщения: 15
Зарегистрирован: 2012.06.26, 14:47
Откуда: Apple City
Контактная информация:

Yii + MS SQL с драйвером SQLSRV

Сообщение KarinaTsar » 2012.06.26, 14:54

Доброго времени суток.
Мне необходима связка Yii+MS SQL Server 2008 R2.
Я новичок и в Yii, и в MS SQL (вот так все грустно))
Драйвер SQLSRV установлен, его видно и через phpinfo(), и если напрямую вызывать функцию sqlsrv_query, например.
С драйвером проблем нет, все работает.
Проблемы возникают в настройке приложения.
В оф. документации предложена такая конфигурация:

Код: Выделить всё

'db'=>array(
   'connectionString' => 'sqlsrv:Server=HOSTNAME\SQLEXPRESS;Database=Client',
      'username' => 'sa',
      'password' => '111',
      'charset' => 'GB2312',
      'tablePrefix' => 'tbl_',
),
Гугл и поиск по http://www.yiiframework.com ответов не дали: было перепробовано огромное количество вариантов конфигурации, но итог один: при вызове gii/model, например, выпадает ошибка "CDbConnection failed to open the DB connection: could not find driver"
Кто сталкивался с подобным, подскажите решение проблемы.
Спасибо

Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Yii + MS SQL с драйвером SQLSRV

Сообщение anton44eg » 2012.06.26, 15:16

HOSTNAME правильный?

Аватара пользователя
Caveman
Сообщения: 152
Зарегистрирован: 2009.04.04, 20:56
Откуда: Москва
Контактная информация:

Re: Yii + MS SQL с драйвером SQLSRV

Сообщение Caveman » 2012.06.26, 19:29

Реально работающая конфигурация:

Код: Выделить всё

array(
            'class'=>'system.db.CDbConnection',
            'connectionString'=>'sqlsrv:Server=SERVER_NAME;Database=DB_NAME',
            'username' => 'USERNAME',
            'password' => 'PWD',
            'charset' => 'utf8',
...
        ),

KarinaTsar
Сообщения: 15
Зарегистрирован: 2012.06.26, 14:47
Откуда: Apple City
Контактная информация:

Re: Yii + MS SQL с драйвером SQLSRV

Сообщение KarinaTsar » 2012.06.27, 07:16

server DEVSQL\DEV12008R2 (с этим значением sqlsrv_connect() отрабатывает, все ок)
может при наличии слэша и т.п. символов надо как-то экранировать? Заключить в круглые и квадратные скобки не помогло, так же как и кавычки.
добавить "'class'=>'system.db.CDbConnection'," не помогло.
я же правильно понимаю, что если проблема приконнектиться к серверу (если не может найти имя или данные пользователя не подходят), то ошибка будет не "CDbConnection failed to open the DB connection: could not find driver"?

KarinaTsar
Сообщения: 15
Зарегистрирован: 2012.06.26, 14:47
Откуда: Apple City
Контактная информация:

Re: Yii + MS SQL с драйвером SQLSRV

Сообщение KarinaTsar » 2012.07.02, 12:41

В общем был установлен другой веб-сервер (+установлены библиотеки sqlsrv) и все заработало.
Тему можно закрыть

valiya
Сообщения: 1
Зарегистрирован: 2013.02.09, 14:21

Re: Yii + MS SQL с драйвером SQLSRV

Сообщение valiya » 2013.02.09, 14:23

Была аналогичная проблема, помогло включение в php.ini : extension=php_pdo_sqlsrv_53_ts_vc9.dll

thekip
Сообщения: 16
Зарегистрирован: 2012.08.03, 16:07

Re: Yii + MS SQL с драйвером SQLSRV

Сообщение thekip » 2013.02.11, 09:48

На будущее, или для тех кто ищет подробности решения: драйверов SQLSRV есть 2, один с поддержкой PDO, другой без. Соответственно отличить их можно по названию DLLки.
В случае топик стартера была подключена не PDO библиотека, поэтому работали процедурные функции типа sqlsrv_query, но не работал Yii которому требуется PDO.

Кроме того при выборе драйвера нужно учитывать тип вашей сборки PHP (ts, nts и версию компилятора, VC9 и т.п.), все это можно посмотреть в первом информационном блоке phpinfo();

Ответить