连接到microsoft azure时出现PDO异常错误


PDO Exception error while connecting to microsoft azure

我在mac上连接到azure有问题。我在这里读了很多文章,并在我的php.ini文件中添加了多个扩展名,但似乎没有任何作用。我只是想简单地运行这段代码并连接到数据库。代码中所有变量的实际值都是正确的。

此刻它给了我以下错误:"PDOException Object ( [message:protected] => could not find driver".

我已经看了很多关于这个问题的文章,并且给php.ini添加了扩展。我把所有的都贴在下面供大家查看。我现在也有PDO附加到我的服务器。不幸的是,我不能张贴截图在这里,但我的pdo_mysql, pdo_pgsql, pdo_sqlite在phpinfo()调用。

我将非常感谢任何关于这件事的信息和帮助。谢谢你!
   $server = "tcp:*********.database.windows.net,1433";
   $user = "jus***@********";
   $pwd = "password";
   $db = "testdb";
   try
   {
       $conn = new PDO( "sqlsrv:Server= $server ; Database = $db ", $user, $pwd);
       $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    }
   catch(Exception $e)
   {
      die(print_r($e));
   }

     ;Extensions
     ;extension=apcu.so
     extension=imap.so
     extension=yaz.so
     extension=mcrypt.so
     extension=gettext.so
     extension=pgsql.so
     extension=pdo_pgsql.so
     extension=pdo_mysql.so
     extension=php_pdo.dll
     extension=php_pdo_mysql.dll
     extension=php_pdo.dll
     extension=php_pdo_firebird.dll
     extension=php_pdo_informix.dll
     extension=php_pdo_mssql.dll
     extension=php_pdo_mysql.dll
     extension=php_pdo_oci.dll
     extension=php_pdo_oci8.dll
     extension=php_pdo_odbc.dll
     extension=php_pdo_pgsql.dll
     extension=php_pdo_sqlite.dll 
     ;extension=imagick.so

除了您在php.ini中启用的扩展之外,您还需要安装:

  • Microsoft Drivers 3.0 for PHP for SQL Server

你还必须确保你没有使用错误的php.ini

在你的连接字符串中避免这些空格,如果你做任何事情,你应该抓住PDOException

$server = "tcp:*********.database.windows.net,1433";
$user = "jus***@********";
$pwd = "password";
$db = "testdb";
$dsn = "sqlsrv:Server=$server;Database=$db";
try {
   $conn = new PDO($dsn, $user, $pwd );
   $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
} catch (PDOException $e) {
    die(print_r($e));
}