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

时间:2014-06-24 10:43:36

标签: php azure pdo

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

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

我已经看过关于这个问题的多篇文章,并添加了对php.ini的扩展。我已粘贴以下所有内容供人检查。我现在也将PDO连接到我的服务器上。不幸的是,我不能在这里发布screemshot,但是在phpinfo()调用中我的pdo_mysql,pdo_pgsql,pdo_sqlite。

我真的很感激有关此事的任何信息和帮助。谢谢!

   $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

1 个答案:

答案 0 :(得分:0)

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

您还必须确保没有使用错误的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));
}