Pular para o conteúdo principal

Conectar SQL Server no Codeigniter

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!




Comentários

  1. Cara muito bom seu post, mas infelizmente meu problema continua!!
    estou usando o xampp 1.7.3 VC6 e estou usando o codeigniter 2.1.4

    ResponderExcluir
    Respostas
    1. 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?

      O 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.

      Excluir
    2. Marcelo, quando tento me conectar aparece essa mensagem:

      A 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.

      Excluir
    3. 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.

      Como 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!

      Excluir
    4. já tentei só com o IP e também não dá, será que pode ser alguma outra configuração?
      IIS ou outra coisa??

      Excluir
  2. Completando: Tente fazer a conexão simples com o banco pra vê se conecta.

    $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!”;

    }

    ResponderExcluir
    Respostas
    1. tentei e também não foi!

      Não foi possível conectar ao banco de dados!

      Excluir
  3. Marcelo, fazendo uma depuração da conexão achei esses erros, algo sobre instalar o sql server client native 2012:

    Nã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 ) )

    ResponderExcluir
  4. 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

    ResponderExcluir
    Respostas
    1. Sim eu coloquei conforme você havia falado no tutorial, mas está aparecendo o erro acima quando dou um print_r. algo relacionado ao drive ODBC.
      estou 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.

      Excluir
  5. Respostas
    1. Será o mesmo IP do computador/servidor que seu SQL Server estiver instalado!

      Excluir

Postar um comentário

Postagens mais visitadas deste blog

Resolvendo problema na instalação do Moodle 3.1 [mysql_full_unicode_support]

Fala Galera! Recentemente fui instalar a versão do 3.1 do Moodle e me deparei com a seguinte mensagem de erro da instalação: Ou seja, a mensagem está falando que o seu banco de dados foi criado em um formato de arquivos não suportado. Na maioria das vezes a collaction criada automaticamente é LATIN1 e ele está pedindo UTF-8. Para resolver esse problema basta rodar o seguinte SQL em seu banco de dados MySQL. ALTER SCHEMA `NOME_DO_SEU_BANCO`  DEFAULT CHARACTER SET utf8  DEFAULT COLLATE utf8_general_ci; Feito isso prossiga normalmente com sua instalação do Moodle 3.1 e desfrute das novidades que essa versão traz. Espero que tenha gostado e até mais.

Tela personalizada de login do Moodle

As vezes queremos ou precisamos sair do tradicional e necessitamos fazer uma tela de login personalizada no Moodle. Em uma dessas necessidades que surgiu esse POST em que vou explicar como fiz uma tela personalidade para utilizar no Moodle. Lembrando sempre que existem inúmeras formas de se fazer a mesma coisa na programação, essa foi a forma que eu encontrei. Vamos lá: Primeiramente vamos contextualizar. Por padrão a tela de login do Moodle é como na imagem abaixo, ou ainda pode estar no index da página em um bloco de acesso.  (Clique na imagem para ampliar) 1º Criando o arquivo login.php Criei o arquivo PHP com os campos de usuário e senha e dei a ele o nome de login.php . Coloquei esse arquivo na pasta raiz do Moodle.  A grande questão desse arquivo é no parâmetro action do formulário. Ele aponta para o caminho login/index.php " que é o caminho de login tradicional do Moodle. Veja na imagem abaixo: 2º Usando o método isloggedin(); do Moodle E...

Configurar Aker Client no Windows

Hoje vou postar aqui sobre o Aker Client 1.0.10. O Aker Client é um software que faz a autenticação do cliente no Firewall da Aker. Muitas vezes se torna muito chato fazer essa autenticação de usuário e senha do domínio sempre que entramos no navegador ou qualquer programa que necessite de conexão com a internet. O Aker Client faz exatamente isso, pega seu login e senha do domínio e autentica diretamente no Aker Firewall não precisando ficar digitando sempre. Vamos lá! Primeiro faço o download e instale o Aker Client 1.0.10 Link para Download:  http://www.4shared.com/zip/lCUWcQLP/akerclient-1010-pt-win32-insta.html Depois de instalado vamos configurar o Aker Client: 1º Logado como administrador da máquina vá em Novo Servidor 2º Configuração do Novo Servidor 3º Vá em “Permissões de Acesso” 4º Servidor Configurado. Por enquanto não irá conectar já que não está logado como usuário do domínio. 5º Logar com um usuário do domínio e já estará conectado e autenti...