Como configurar direito o Doctrine 2 no ZF2 para se conectar a um bando de dados MSSQL ?

625 views
Skip to first unread message

Albert R. Carnier Guedes

unread,
Sep 4, 2013, 5:04:41 PM9/4/13
to zfbr...@googlegroups.com
Estou com o seguinte problema : eu tenho no meu database.local.php a configuração da conexão e estou usando o 'Doctrine\DBAL\Driver\SQLSrv\Driver' .

Acontece que quando vou gerar as entidades com o comando


$ php ./vendor/doctrine/doctrine-module/bin/doctrine-module orm:convert-mapping --namespace="Application\\Entity\\" --force --from-database annotation ./module/Application/src/Application/Entity/ 



Me retorna logo no começo a mensagem


Fatal error: Call to undefined function Doctrine\DBAL\Driver\SQLSrv\sqlsrv_connect() in  /home/x/public_html/zf2app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvConnection.php on line 43


Nesse mesmo sistema eu uso o "pdo_mssql" e funciona tudo bem a conexão. Mas no doctrine 2 parece que ele foi substituido por esse 'sqlsrv' , só que não tá funcionando.

Seria alguma coisa que falta no meu sistema, configuração errada ? Any ideas ?

Leandro Machado Pereira

unread,
Sep 4, 2013, 5:08:49 PM9/4/13
to zfbr...@googlegroups.com
Albert, 

Acho que a partir do PHP 5.4 a extensão para o MSSQL é o sqlsrv.

Você utiliza pdo_mssql e sqlsrv no mesmo ambiente ?


--
Essa mensagem faz parte do grupo "zfbrasil" no Google Groups.
Para escrever neste grupo, envie um email para zfbr...@googlegroups.com
Para se desligar do grupo, envie um email para zfbrasil-u...@googlegroups.com
Mais informações, visite o grupo em http://groups.google.com/group/zfbrasil?hl=pt-BR
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Zend Framework Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para zfbrasil+u...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
***Se você pretende redirecionar este e-mail, por favor, apague todos os endereços que aparecem nele. Outra dica de segurança é endereçá-lo no Cco. Desta forma você estará protegendo a mim, seus amigos e a você mesmo. Eu e a Campanha Contra o SPAM agradecemos.Não envie correntes.***

Albert R. Carnier Guedes

unread,
Sep 4, 2013, 8:30:37 PM9/4/13
to zfbr...@googlegroups.com
Então, até agora eu venho utilizando o pdo_mssql , só quando me deparei com a necessidade de usar servidor mssql com o zf2 que me pintou esse problema.

Isaac Henrique

unread,
Sep 4, 2013, 11:47:34 PM9/4/13
to zfbr...@googlegroups.com
Cara se tu estiver usando linux (Debian ou outros distros) basta digitar:

$ sudo apt-get install php5-sybase
$ sudo service apache2 restart

isso baixará mssql.so e setará o caminho no php.ini já no windows tu tem que baixar a dll e setar manuamente no php.ini do teu php.

agora o doctrine não dá suporte nativo para o mssql mas você pode configurar o driver_class:

# Doctrine Configuration
doctrine:
    dbal:
        #driver:   %database_driver%
        driver_class: Doctrine\DBAL\Driver\MsSql\Driver
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        #charset:  UTF8

    orm:
        auto_generate_proxy_classes: %kernel.debug%
        auto_mapping: true
________________________________
       Isaac Henrique Barbosa Nunes
  Analista e Desenvolvedor de Sistema

Albert R. Carnier Guedes

unread,
Sep 5, 2013, 12:59:56 PM9/5/13
to zfbr...@googlegroups.com
O Doctrine 2.3.4 não aceita mais pdo_mssql como driver. Pelo menos no que baixei ele não tem as classes d econexão para tal.

Encontrei um pacote para dblib ( https://github.com/trooney/PDODblibBundle ) que usa o freetds para se conectar em MSSQL SERVER via php em servidores linux. Vamos ver no que dá.

jesus vieira

unread,
Sep 7, 2013, 2:43:39 PM9/7/13
to zfbr...@googlegroups.com
JESUS VIEIRA
Programador back-end
Web Patterns - Desenvolvimento de Web Sites

Albert R. Carnier Guedes

unread,
Sep 7, 2013, 4:18:25 PM9/7/13
to zfbr...@googlegroups.com
O meu problema é com o driver do mssql , esse vídeo trata do mysql.

jesus vieira

unread,
Sep 7, 2013, 4:25:09 PM9/7/13
to zfbr...@googlegroups.com
Sim ele usa o Drive PDOMYSQL


Em 7 de setembro de 2013 16:18, Albert R. Carnier Guedes <arcg...@gmail.com> escreveu:
O meu problema é com o driver do mssql , esse vídeo trata do mysql.

--
Essa mensagem faz parte do grupo "zfbrasil" no Google Groups.
Para escrever neste grupo, envie um email para zfbr...@googlegroups.com
Para se desligar do grupo, envie um email para zfbrasil-u...@googlegroups.com
Mais informações, visite o grupo em http://groups.google.com/group/zfbrasil?hl=pt-BR
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Zend Framework Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para zfbrasil+u...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

Albert R. Carnier Guedes

unread,
Sep 7, 2013, 5:04:00 PM9/7/13
to zfbr...@googlegroups.com
Sério ? O PDOMySql server para MSSQL ?

jesus vieira

unread,
Sep 7, 2013, 5:54:25 PM9/7/13
to zfbr...@googlegroups.com
humm desculpa, eu não tinha prestado atenção mas não vai funcionar não..


--
Essa mensagem faz parte do grupo "zfbrasil" no Google Groups.
Para escrever neste grupo, envie um email para zfbr...@googlegroups.com
Para se desligar do grupo, envie um email para zfbrasil-u...@googlegroups.com
Mais informações, visite o grupo em http://groups.google.com/group/zfbrasil?hl=pt-BR
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Zend Framework Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para zfbrasil+u...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

jesus vieira

unread,
Sep 7, 2013, 6:15:39 PM9/7/13
to zfbr...@googlegroups.com
Eu dei uma olhada rápida na documentação do doctrine e reparei isso http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html

tenta fazer assim:

<?php
return array(
    'doctrine' => array(
        'connection' => array(
            'orm_default' => array(
                'driverClass' => 'Doctrine\DBAL\Driver\PDOSqlsrv\Driver',
                'params' => array(
                    'host'     => '127.0.0.1',
                    'port'     => '3306',
                    'user'     => 'root',
                    'password' => '',
                    'dbname'   => 'NOME_DO_BANCO',
                )
            )
        )
    ),
);

Albert R. Carnier Guedes

unread,
Sep 7, 2013, 11:15:19 PM9/7/13
to zfbr...@googlegroups.com
Valeu a intenção cara, mas esse driver só funciona no windows ( além da porta ser 1433, só para dar um toque ;) ). Semana que vem vou tentar usar o dblib que parece ser a saida para meu caso.

Sérgio Hermes

unread,
Dec 12, 2013, 1:29:06 PM12/12/13
to zfbr...@googlegroups.com
Conseguiu resolver?

Estou tentando a todo custo  e não estou conseguindo

Encontrei 3 repositorios que contem PDODblib e testei


Lembro que quando usava zf1, tive problemas também para integrar o doctrine com mssql

A pdo correta era o dblib.

Logo a premissa de utilizar Dblib para o mssql esta correta.

Testei os repositórios
E me retornou o seguinte erro. 

[PDOException]
  SQLSTATE[01002] Adaptive Server connection failed (severity 9)

Se conseguir algo, por favor mantenha contato.

Se eu conseguir com certeza colocarei aqui.

Abraço,

Albert R. Carnier Guedes

unread,
Mar 26, 2014, 12:17:47 PM3/26/14
to zfbr...@googlegroups.com


Agora mudou todo esquema. Conexões unix ( MacOS ou linux ) devem usar agora FreeTDS e usar o dbo 'dblib' para conexões com servidores MS SQL.
Reply all
Reply to author
Forward
0 new messages