Ontem (26/11) postei como fiz as configurações para conectar
ao banco SQL Server através da função sqlsrv_connect(). No entanto, não fiquei
totalmente satisfeito com meu problema real, que era conectar o banco SQL
Server usando o framework Codeigniter. Por isso esse POST de hoje, em que vou
mostrar como fiz essa conexão, que é bem simples diga-se de
passagem.
Vamos lá! A
primeira coisa a ser feita, caso você não tenha feito, é realizar a
configuração das DLL’s php_pdo_sqlsrv_54_ts.dll e php_sqlsrv_54_ts.dll
no seu servidor Apache e no PHP.INI.
Para saber mais como fazer essa configuração veja esse POST
em que mostrei como fiz essa configuração: http://www.marceloalmeida.net/2013/11/conectar-banco-sql-server-usando-php.html
Feita a configuração, certifique-se que sua versão do Codeigniter
está com o driver SQLSRV. Para conferir isso você poderá ir dentro da pasta do Codeigniter
em "system\database\drivers" deverá ter a pasta do driver SQLSRV dentro. Caso
não tenha, sugiro que baixe a versão mais recente do Codeigniter (http://ellislab.com/codeigniter/user-guide/installation/downloads.html),
que já contempla essa atualização de driver.
Fazendo as configurações e assegurando que o framework está
com o driver, basta configurar o seu arquivo database.php que está na pasta "application\config",
da seguinte maneira:
$db['default']['hostname'] = 'IP_DO_SERVIDOR';
$db['default']['username'] = 'USUARIO_DO_BANCO';
$db['default']['password'] = 'SENHA_DO_BANCO';
$db['default']['database'] = 'BANCO_DE_DADOS';
$db['default']['dbdriver'] = 'sqlsrv'; //Por padrão vêm
mysql. Altere para sqlsrv.
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE; // Por padrão vem TRUE.
Altere para FALSE.
$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;
A grande
sacada dessa configuração está no atributo pconnect e dbdriver que devem ser alterados.
É isso!
Espero que tenha dado certo com vocês! Se gostou, divulgue o POST, comente e
contribua. Se não gostou,
comente também e vamos juntos melhorar.
Abraço a todos!
Cara muito bom seu post, mas infelizmente meu problema continua!!
ResponderExcluirestou usando o xampp 1.7.3 VC6 e estou usando o codeigniter 2.1.4
Valeu! Muito Obrigado pelo acesso. Mesmo inserindo as DLL's e fazendo como nesse POST http://www.marceloalmeida.net/2013/11/conectar-banco-sql-server-usando-php.html não resolveu?
ExcluirO que acontece quando você tentou conectar ao banco?
Se te ajuda, utilizo aqui a versão do Xampp 1.8.2 no Windows 8 de 64 bits.
Marcelo, quando tento me conectar aparece essa mensagem:
ExcluirA Database Error Occurred
Unable to connect to your database server using the provided settings.
Filename: C:\xampp\htdocs\sqlserver\system\database\DB_driver.php
Line Number: 124
Estou realizando a conexão da seguinte forma::
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = '192.168.1.5\minascopy';
$db['default']['username'] = '***';
$db['default']['password'] = '*******';
$db['default']['database'] = 'CorporeRM_D1';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$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;
e as demais configurações assim como você postou.
Instalei o xampp 1.8.2 e meu windows é o 8 64bits!!
coloquei as DLL`s como no outro tutorial.
O único avanço que tive foi que meu xampp depois que instalei a versão 1.8.2 parou de dar error na hora de iniciar o servidor.
talvez esteja pecando na configuração dos dados do banco, mas estou utilizando as mesma informações que coloco no próprio sqlserver express.
Você tentou utilizando apenas o IP do servidor? Sem a instância, no caso \minascopy? Utilizo aqui somente o IP e as demais informações que conecto no SQLServer Express e inclusive, minha conexão também é com base de dados do CorporeRM.
ExcluirComo disse no outro comentário, tente primeiro fazer uma conexão simples com o banco pra tentar identificar onde está o erro.
$host = 'MEUSERVIDOR;
$user = USUARIO_DO_BANCO';
$senha = 'SENHA_DO_BANCO';
$base = 'BASE_DE_DADOS';
$config = array("Database" => $base, "UID" => $user, "PWD" => $senha);
$con = sqlsrv_connect($host, $config);
If($con){
echo “Conectato com sucesso!”;
}
else{
echo “Não foi possível conectar ao banco de dados!”;
}
Boa Sorte!
já tentei só com o IP e também não dá, será que pode ser alguma outra configuração?
ExcluirIIS ou outra coisa??
Completando: Tente fazer a conexão simples com o banco pra vê se conecta.
ResponderExcluir$host = 'MEUSERVIDOR;
$user = USUARIO_DO_BANCO';
$senha = 'SENHA_DO_BANCO';
$base = 'BASE_DE_DADOS';
$config = array("Database" => $base, "UID" => $user, "PWD" => $senha);
$con = sqlsrv_connect($host, $config);
If($con){
echo “Conectato com sucesso!”;
}
else{
echo “Não foi possível conectar ao banco de dados!”;
}
tentei e também não foi!
ExcluirNão foi possível conectar ao banco de dados!
Marcelo, fazendo uma depuração da conexão achei esses erros, algo sobre instalar o sql server client native 2012:
ResponderExcluirNão foi possível conectar ao banco de dados!Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -49 [code] => -49 [2] => This extension requires the Microsoft SQL Server 2012 Native Client. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712 [message] => This extension requires the Microsoft SQL Server 2012 Native Client. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712 ) [1] => Array ( [0] => IM002 [SQLSTATE] => IM002 [1] => 0 [code] => 0 [2] => [Microsoft][ODBC Driver Manager] Nome da fonte de dados n�o encontrado e nenhum driver padr�o especificado [message] => [Microsoft][ODBC Driver Manager] Nome da fonte de dados n�o encontrado e nenhum driver padr�o especificado ) )
Possivelmente alguma configuração do Apache, PHP ou das DLL's não estão corretas. Já que até refiz aqui a conexão com meu banco do SQLServer e ambos deu certo. Só pra constar no PHP.ini você colocou lá: extension=php_pdo_sqlsrv_54_ts.dll extension=php_sqlsrv_54_ts.dll
ResponderExcluirSim eu coloquei conforme você havia falado no tutorial, mas está aparecendo o erro acima quando dou um print_r. algo relacionado ao drive ODBC.
Excluirestou pesquisando sobre para saber o que fazer.
estou pensando em reinstalar tudo novamente para ter certeza que não pulei nenhum passo.
caso tenha novas informações por favor poste aqui, muito obrigado pela ajuda.
tentarei também realizar os procedimento em um servidor 2008 R2 para ver se pode ser alguma compatibilidade com o windows.
Até mais.
Como descubro o ip do sql server?
ResponderExcluirSerá o mesmo IP do computador/servidor que seu SQL Server estiver instalado!
Excluir