Ошибка sqlsrv_prepare с Microsoft SQL Server 2008 и ZF2

Я следовал отличному руководству Роба Аллена по ZF2 (http://akrabat.com/wp-content/uploads/Getting-Started-with-Zend-Framework-2.pdf).

Я пытаюсь подключиться к Microsoft SQL Server 2008. И когда я делаю

$this->getDatasTable()->fetchAll()

Я получаю следующую ошибку:

PHP Warning:  sqlsrv_prepare() expects parameter 1 to be resource, null given in C:\inetpub\wwwroot\LinuxWebApp\source\vendor\zendframework\zendframework\library\Zend\Db\Adapter\Driver\Sqlsrv\Statement.php on line 153

В config/autoload/global.php у меня есть:

return array(
'db' => array(
    'driver' => 'Sqlsrv',
    'dsn'            => 'sqlsrv:dbname=xxx;hostname=xxx',
    'username'       => 'xxx',
    'password'       => 'xxx',
    'driver_options' => array(
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
    ),
),
);

Что я делаю неправильно?

Спасибо!


person Dionysos    schedule 20.06.2012    source источник


Ответы (1)


PDO::MYSQL_ATTR_INIT_COMMAND не будет работать для SQL Server. Попробуйте удалить раздел driver_options.

Обновление со следующей идеей:
Параметр 1 – это ресурс sqlsrv, поэтому можете ли вы заставить работать тестовый сценарий, который напрямую использует драйвер PDO Sqlsrv? В настоящее время мне интересно, есть ли проблема с подключением.

person Rob Allen    schedule 18.07.2012
comment
Эй, Роб! Я обновился до ZF2 beta5, удалил раздел driver_options и все равно получаю то же сообщение об ошибке. - person Dionysos; 18.07.2012