连接到FuelPHP中的MSSQL服务器时,PDO Adaptive Server连接失败

时间:2012-09-28 16:00:01

标签: php sql-server pdo fuelphp

当我尝试通过PDO连接到MSSQL数据库时,FuelPHP似乎做了一些奇怪的事情。

在FuelPHP外工作

我在本地服务器上的vanilla PHP页面中尝试了以下内容:

<?php
$mssql = new \PDO('dblib:host=<IP OF HOST>;dbname=<DBNAME>', '<USER>', '<PASS>');

一切正常。它连接起来,我可以像我期望的那样轻松查询数据库。

不在FuelPHP内部工作

但是,当我尝试在config / db.php中添加基本相同信息的连接时,会抛出异常。

<?php
return array(
  'mssql' => array(
    'connection'  => array(
      'dsn'        => 'dblib:host=<IP OF HOST>;dbname=<DBNAME>',
      'username'   => '<USER>',
      'password'   => '<PASS>',
    ),
    'type'        => 'pdo',
    'table_prefix' => '',
  ),
);

然后尝试在FuelPHP中查询DB,如下所示:

$q = \DB::select()
        ->from('table')
        ->limit(5);

$r = $q->execute('mssql');

抛出以下异常:Fuel\Core\Database_Exception [ 20002 ]: SQLSTATE[01002] Adaptive Server connection failed (severity 9)

当我尝试在FuelPHP的控制器内部执行原始基本连接时,踢球者是什么我得到相同的错误消息。所以看起来FuelPHP正在破坏甚至正常的PDO连接。

FuelPHP控制器内的基本连接尝试示例。

<?php

class Controller_Welcome extends Controller
{
  public function action_index()
  {
    $mssql = new \PDO('dblib:host=<IP OF HOST>;dbname=<DBNAME>', '<USER>', '<PASS>');
  }
}

作为参考,我使用PHP 5.3.16并使用FreeTDS从我的OS X笔记本电脑连接。 (这不应该是一个问题,因为香草版本有效。)

0 个答案:

没有答案