2011-10-31 43 views
5

Estoy intentando conectar desde php para Azure DB por"llamada a función no definida sqlsrv_connect()" cuando intenta conectarse a Azure DB desde PHP

$connectionInfo = array("UID" => "[email protected]", "pwd" => "xxx", "Database" => "xxx"); 
$serverName = "tcp:xxx.database.windows.net,1433"; 
$conn = sqlsrv_connect($serverName, $connectionInfo); 

pero me da

Fatal error: Llamada a sqlsrv_connect función no definida() en C: \ wamp \ www ... \ index.php on line 19

+1

¿Por qué no hacer un rápido Google primero y encontrar cosas como [esto] (http://msdn.microsoft.com/en-us/library/windowsazure/ff394110.aspx) o [esto?] (Http: // blogs.msdn.com/b/brian_swan/archive/2010/02/12/getting-started-with-php-and-sql-azure.aspx) –

+0

Ok ... gracias. Sin embargo, ahora dice "Error fatal: llamada a la función no definida sqlsrv_connect() en ...", obviamente mi PHP no tiene alguna extensión. – Roger

+2

Sí, necesita la [extensión del servidor SQL] (http://www.php.net/manual/en/book.sqlsrv.php). Sin embargo, en Windows es fácil agregarlo, por lo general solo tiene que habilitar la DLL apropiada en php.ini (consulte el capítulo "instalación"). –

Respuesta

8

usted tiene que utilizar el SQL Server native driver for php en primer lugar, a continuación, puede hacer algo como:

$serverName = "tcp:sample.database.windows.net, 1433"; 

$connectionOptions = array("Database" => "sampleInit", 

          "UID" => "[email protected]", 

          "PWD" => "samplePass", 

          "MultipleActiveResultSets" => false); 

$conn = sqlsrv_connect($serverName, $connectionOptions); 

if($conn === false) 

{ 

    die(print_r(sqlsrv_errors(), true)); 

} 

Usted puede leer más en PHP y SQL Azure en el siguiente blog:
http://blogs.msdn.com/b/brian_swan/archive/2010/02/12/getting-started-with-php-and-sql-azure.aspx

+0

Gracias! ¡Instalado, parece conectarse bien! :) ¿Trabajo a partir de ahora con la base de datos MySql habitual? – Roger

+0

Bueno, de ahora en adelante trabajas como una base de datos SQL Server normal :) Existen algunas (pueden ser más) diferencias entre los lenguajes SQL en SQL Server y MySQL. Por ejemplo, en SQL server no hay palabra clave LIMIT. Pero, en general, sí, a partir de ahora está trabajando como con la base de datos normal. Sugiero que utilice algún tipo de capa de abstracción de base de datos, como adodb o cualquier otra. – astaykov

0

que añade this dll a la ext/carpeta y añade a la extension=php_sqlsrv.dll php.ini en el php7/carpeta.

Cuestiones relacionadas