在Ubuntu 12.04 LTS上从CakePHP 3连接到SQL Server

ric*_*ere 5 php sql-server pdo cakephp cakephp-3.0

我的设置是在Windows上工作,但我最近切换到Ubuntu 12.04 LTS,现在它将无法连接.当我加载一个我需要与SQL Server通信的页面时,我收到此错误:

由于缺少PHP扩展或未满足的依赖项,无法使用数据库驱动程序Cake\Database\Driver\Sqlserver

很明显CakePHP找不到SQL Server PDO驱动程序.

我找到了许多旧的教程来帮助我,但我最近才拿到了(我希望能够在我的CakePHP网站上使用PDO).这是我遵循的教程.

使用终端,我可以使用此命令访问数据库

sqlcmd -S my.sql.server.com -U username
Run Code Online (Sandbox Code Playgroud)

使用CakePHP 3.x从我的ubuntu安装连接到这个sql server数据库需要做什么?

ric*_*ere 1

更新(2016 年 10 月 17 日):

Microsoft 最近发布了适用于Linux的pdo_sqlsrvsqlsrv预览版本(在其 msphpsql 存储库上)。它在运行 php7 的 Ubuntu 16.04.1 LTS (Xenial Xerus) 虚拟机上成功运行。


原答案:

正如@AD7six 所说:

CakePHP的sql服务器驱动程序用于使用PDO_SQLSRV;如果您需要使用 ODBC,则核心中没有。

如果您使用的是Windows,则PDO_SQLSRV可以正常工作。CakePHP 有一个本地支持它的驱动程序。

如果您想从Linux与 SQL Server 数据库通信,则必须使用ODBC 驱动程序您可以使用本教程安装驱动程序,这对我帮助很大。之后,您将能够使用 PDO(而不是 CakePHP)连接到数据库:

try {
  $query = new PDO(
    "odbc:Driver={SQL Server};Database=[Database name]; Server=[Hosame]",
    "[Username]", 
    "[Password]");
} catch (PDOException $e) {
  echo 'Connection failed: ' . $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

感谢大家的帮助。为 odbc 找到/编写 CakePHP 3 数据库驱动程序可能会很棒。