【问题标题】:PDO Exception error while connecting to microsoft azure连接到 Microsoft azure 时出现 PDO 异常错误
【发布时间】:2014-08-14 14:16:16
【问题描述】:

我在我的 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 azure pdo


    【解决方案1】:

    除了您在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));
    }
    

    【讨论】:

    • 感谢您的回复。这件事是,我在 Mac 上,这些驱动程序可用于 Windows。知道如何解决这个问题吗?
    • @user3766744 这就是问题所在,Linux 无法直接连接到 microsoft,您需要一些驱动程序,例如 FreeTDS。你怎么在 linux 上有 dll?
    • 很抱歉,我在这里很困惑。那么,我应该下载freeTDS驱动程序,然后下载微软驱动程序?过去一天我一直在阅读有关此问题的信息,并一直在为我的 php.ini 文件添加扩展名,即那些 dll。我想他们没有帮助
    • 别弄糊涂了,你正在尝试从 Linux 机器连接到 Microsoft 数据库服务器,你需要一个允许你这样做的驱动程序,检查这个stackoverflow.com/questions/13371281/…
    猜你喜欢
    • 2014-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 2019-07-14
    • 1970-01-01
    相关资源
    最近更新 更多