Conexão PHP com SQL Server (2012)
Bom dia, alguém poderia me ajudar ?
Trabalho numa empresa de grande porte e estou com um problemão.
Tenho uma aplicação em PHP que já é estruturada, se conecta a um banco Mysql, sem problema nenhum, através de um arquivo config.php que fiz.
Agora tem uma conexão que preciso fazer para outra parte que preciso me conectar a um banco que está em um SQL Server 2012. Porém já tentei de tudo para me conectar ao banco e não consigo.
Vi vários artigos para se conectar com odbc, sqlsrv, pdo, mas nada me ajudou.
Vi também que preciso copiar extensões para o servidor bem como inserir as linhas das extensões no php.ini.
Alguém já passou por isso e poderia me auxiliar ?
Esse php.ini é o servidor da minha aplicação (Onde subo os arquivos FTP) ? ou o servidor do sql server ?
Obrigado
Trabalho numa empresa de grande porte e estou com um problemão.
Tenho uma aplicação em PHP que já é estruturada, se conecta a um banco Mysql, sem problema nenhum, através de um arquivo config.php que fiz.
Agora tem uma conexão que preciso fazer para outra parte que preciso me conectar a um banco que está em um SQL Server 2012. Porém já tentei de tudo para me conectar ao banco e não consigo.
Vi vários artigos para se conectar com odbc, sqlsrv, pdo, mas nada me ajudou.
Vi também que preciso copiar extensões para o servidor bem como inserir as linhas das extensões no php.ini.
Alguém já passou por isso e poderia me auxiliar ?
Esse php.ini é o servidor da minha aplicação (Onde subo os arquivos FTP) ? ou o servidor do sql server ?
Obrigado
Eduardo Piassi
Curtidas 0
Melhor post
Filon Segundo
04/07/2018
Opa,
Ja fiz algo relacionado a isso, onde eu precisava conectar a um banco MSSQL.
no meu caso, eu fiz usando PDO.
primeiro, baixa o driver de conexão no site da microsoft
depois, copie a dll para a pasta ext da instalação do php.
depois habilita a extenção no php.ini
depois, verifica no phpinfo se aparece enabled no pdo_sqlsrv
pronto, o servidor ja está configurado, agora, basta usar a conexão
para usar na aplicação, segue o exemplo:
Ja fiz algo relacionado a isso, onde eu precisava conectar a um banco MSSQL.
no meu caso, eu fiz usando PDO.
primeiro, baixa o driver de conexão no site da microsoft
depois, copie a dll para a pasta ext da instalação do php.
depois habilita a extenção no php.ini
extension=php_pdo_sqlsrv.dll ( nome do arquivo que você copiou pra pasta ext)
depois, verifica no phpinfo se aparece enabled no pdo_sqlsrv
pronto, o servidor ja está configurado, agora, basta usar a conexão
para usar na aplicação, segue o exemplo:
define('DB_HOST' , "#ipdoservidor"); define('DB_USER' , "#usuariodoservidor"); define('DB_PASSWORD' , "#senhadoservidor"); define('DB_NAME' , "#nomedobanco"); define('DB_DRIVER' , "sqlsrv"); //deixa o driver como está, pois já está definido para sqlsrv $cfg = DB_DRIVER . ":". "Server=" . DB_HOST . ";"; $cfg .= "Database=".DB_NAME.";"; $conn = new PDO($cfg, DB_USER, DB_PASSWORD); //não alterar $conn ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //não alterar //daqui pra baixo é exemplo de query $query = $conn ->query("SELECT nome from usuarios"); $usuarios = $query->fetchAll();
GOSTEI 1
Mais Respostas
Eduardo Piassi
03/07/2018
Complementando, achei na versão do php que uso, isso:
odbc
ODBC Support enabled
Active Persistent Links 0
Active Links 0
ODBC library Win32
Directive Local Value Master Value
odbc.allow_persistent On On
odbc.check_persistent On On
odbc.default_cursortype Static cursor Static cursor
odbc.default_db no value no value
odbc.default_pw no value no value
odbc.default_user no value no value
odbc.defaultbinmode return as is return as is
odbc.defaultlrl return up to 4096 bytes return up to 4096 bytes
odbc.max_links Unlimited Unlimited
odbc.max_persistent Unlimited Unlimited
odbc
ODBC Support enabled
Active Persistent Links 0
Active Links 0
ODBC library Win32
Directive Local Value Master Value
odbc.allow_persistent On On
odbc.check_persistent On On
odbc.default_cursortype Static cursor Static cursor
odbc.default_db no value no value
odbc.default_pw no value no value
odbc.default_user no value no value
odbc.defaultbinmode return as is return as is
odbc.defaultlrl return up to 4096 bytes return up to 4096 bytes
odbc.max_links Unlimited Unlimited
odbc.max_persistent Unlimited Unlimited
GOSTEI 0
Filon Segundo
03/07/2018
se o servidor em que o php está rodando é linux, você téra que usar dblib ao invez de sqlsrv como driver,
da uma olhada aqui
http://php.net/manual/en/ref.pdo-dblib.php
da uma olhada aqui
http://php.net/manual/en/ref.pdo-dblib.php
GOSTEI 1
Eduardo Piassi
03/07/2018
Opa, valeu Filon, vou tentar. Estou esperando o pessoal instalar as extensões no cpd para eu testar, ja que não me deixam ter o acesso direto no servidor. Assim que eles fizerem essas alterações te dou um alô. Valeu
GOSTEI 0
Eduardo Piassi
03/07/2018
Não, o servidor é windows mesmo. valeu
GOSTEI 0
Eduardo Piassi
03/07/2018
Filon, bom dia. Não querendo abusar. A versão do meu php é 5.2, sabe qual seria o arquivo SQLSRV que preciso baixar, tem vários aqui no site para download, SQLSRV30, SQLSRV31, SQLSRV32, SQLSRV40, SQLSRV52.
Obrigado
Obrigado
GOSTEI 0
Filon Segundo
03/07/2018
isso depende da versão do sql server que está usando e se seu php é thread safe ou não.
primeiro, verifique no phpinfo se threadsafe é true ou false.
depois disso, baixe o relativo a sua versão
Versão 4.0 suporta PHP 7.0+
Versão 3.2 suporta PHP 5.6, 5.5, e 5.4
Versão 3.1 suporta PHP 5.5 e 5.4
Versão 3.0 suporta PHP 5.4
pessoalmente , recomendaria você a atualizar o php do seu servidor para no minimo o 5.6, mas caso não seja possivel creio que a versão 3.0 funcionará.
baixando o arquivo SQLSRV30, dentro dele terá duas dlls uma com final ts, e outra com nts ou sem o final ts.
se seu php for threadsafe use a versão com ts no final, caso contrário, use a outra versão
primeiro, verifique no phpinfo se threadsafe é true ou false.
depois disso, baixe o relativo a sua versão
Versão 4.0 suporta PHP 7.0+
Versão 3.2 suporta PHP 5.6, 5.5, e 5.4
Versão 3.1 suporta PHP 5.5 e 5.4
Versão 3.0 suporta PHP 5.4
pessoalmente , recomendaria você a atualizar o php do seu servidor para no minimo o 5.6, mas caso não seja possivel creio que a versão 3.0 funcionará.
baixando o arquivo SQLSRV30, dentro dele terá duas dlls uma com final ts, e outra com nts ou sem o final ts.
se seu php for threadsafe use a versão com ts no final, caso contrário, use a outra versão
GOSTEI 0
Eduardo Piassi
03/07/2018
Mais uma vez, obrigado pela prestação e disposição de me ajudar.
Quanto a atualizar, eu nao tenho acesso para isso, pois o servidor fica no CPD da empresa e tenho que ficar abrindo chamado para os analistas atenderem com as alterações e eles não vão atualizar.
Vou mandar o final 30 então para eles subirem a extensão e pedir para incluirem as linhas no php.ini
Valeu, abraço
Quanto a atualizar, eu nao tenho acesso para isso, pois o servidor fica no CPD da empresa e tenho que ficar abrindo chamado para os analistas atenderem com as alterações e eles não vão atualizar.
Vou mandar o final 30 então para eles subirem a extensão e pedir para incluirem as linhas no php.ini
Valeu, abraço
GOSTEI 0