erro Sqlsrv_connect ()

2

Estou tentando conectar o PHP 5.3.5 ao MS Sql Server 2005. Estou usando o Windows XP SP3. Eu habilitei a função sqlsrv que também é mostrada em phpinfo (). Eu também fiz algumas alterações na extensão php.ini, mas continuo recebendo o seguinte erro:

"Database connection errorArray ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -49 [code] => -49 [2] => This extension requires either the Microsoft SQL Server 2008 Native Client (SP1 or later) or the Microsoft SQL Server 2008 R2 Native Client ODBC Driver to communicate with SQL Server. Neither of those ODBC Drivers are currently installed. Access the following URL to download the Microsoft SQL Server 2008 R2 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712 [message] => This extension requires either the Microsoft SQL Server 2008 Native Client (SP1 or later) or the Microsoft SQL Server 2008 R2 Native Client ODBC Driver to communicate with SQL Server. Neither of those ODBC Drivers are currently installed. Access the following URL to download the Microsoft SQL Server 2008 R2 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] Data source name not found and no default driver specified [message] => [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified ) ) 1"

Instalei sqlncli.msi , SQLSRV20.exe e SQLSRV30.exe , mas ainda estou recebendo o mesmo erro.

Meu programa para conectar:

<?php
$server = "Patrik/SQLEXPRESS";
$conInfo = array("Database"=>"ShoppingDetail","UID"=>"Pat1890","PWD"=>"Pat1890");

$con = sqlsrv_connect($server,$conInfo);

if($con==false)
 {
  echo "Error Connecting to database<br>";
   die (print_r(sqlsrv_errors()));
  }
else
{
  echo "Database connection is sucessfully eastablished";
}
?> 

Eu acho que não há problema na minha codificação. Também ativei o TCP / IP e usei o endereço IP em vez de servername, mas o problema ainda persiste.

    
por Patrik 11.10.2011 / 12:41

2 respostas

1

Verifique, no php.ini

extension=php_pdo_mssql.dll

e

extension=php_pdo_odbc.dll

e tente com o PDO

$server = 'host';
$database = 'database';
$username = 'username';
$password = 'password';
$db = new PDO('odbc:Driver={SQL Server}; Server=' . $server . '; Database=' . $database . '; Uid=' . $username . '; Pwd=' . $password . ';');
$query = $db->prepare('...');
$query->execute();
    
por 11.10.2011 / 21:36
1

Para usar as funções sqlsrv_* , adicione extension=php_sqlsrv_X_Y.dll ao seu php.ini, onde X representa sua versão do PHP ( 53 no seu caso) e Y é ts ou nts para saber se você instalou o build thread-safe / non-thread-safe do PHP. Essas DLLs devem estar todas na pasta ext da sua instalação PHP.

    
por 30.04.2012 / 03:57

Tags