簡體   English   中英

在Ubuntu 12.04 LTS上從CakePHP 3連接到SQL Server

[英]Connect to SQL Server from CakePHP 3 on Ubuntu 12.04 LTS

我的設置是在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

使用CakePHP 3.x從我的ubuntu安裝連接到這個sql server數據庫需要做什么?

更新(2016年10月17日):

微軟最近在Linux上發布了pdo_sqlsrvsqlsrv預覽版 (在他們的msphpsql repo上)。 它在運行php7的Ubuntu 16.04.1 LTS(Xenial Xerus)虛擬機上成功運行。


原始答案:

正如@ AD7six所說:

CakePHP的sql server驅動程序用於使用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();
}

謝謝大家的幫助。 為odbc查找/編寫CakePHP 3數據庫驅動程序可能會很棒。

新版本的CakePHP支持PDO-sqlsrv,這是支持PHP 7及更高版本的MS驅動程序。

http://php.net/manual/en/ref.pdo-sqlsrv.php

它還允許您連接到Azure。 例:

//建立連接$ conn = new PDO(“sqlsrv:server = $ serverName; Database = $ database”,$ uid,$ pwd);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM