2017-06-07 27 views
0

我正在開發一個應用程序,使用Symfony 3(php 7.1)和SQL Server數據庫與AlwaysOn。 AlwaysOn是支持高可用性和災難恢復的SQL服務器,Doctrine 2在這種模式下運行得並不順利。SQL Server始終在線的PHP原則

我已經開發了一個CRUD來測試它在執行此數據庫的作業中的基礎結構部分。在第一次,它工作正常,堅持不懈。但是,當他們將實例更改爲另一個實例時(如第一個實例停止工作時發生的情況),會自動轉到具有相同數據庫結構和數據的另一個實例。當它發生了,我收到一條錯誤消息從學說:

Fatal error: Invalid handle returned. in C:\xampp\htdocs\testesql\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php on line 43 

看起來主義緩存不與這個範例數據庫的工作什麼的。我正在使用Microsoft SQL Server驅動程序(pdo_sqlsrv)。有人能幫助我嗎?我會很高興。

+0

在使用'pdo_sqlsrv'時有一些建議嘗試'ConnectionPooling = 0'。 Doctrines文檔甚至指出在使用'pdo_sqlsrv'時他們的測試存在問題。 http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#driver。我之前沒有很深入地嘗試過使用pdo_sqlsrv,所以不確定這是否值得回答。 –

回答

1

問題解決了!考慮到它是一種新技術並且PHP 7.1也是如此,所以很難與SQL Server Always On一起工作。 (08/06/17)

我解決了將symfony doctrine driver從「pdo_sqlsrv」更改爲「sqlsrv」以下信息的問題Doctrine 2 Documentation infos。

如果任何人有SQL Server中的問題始終在使用PHP,請記住:

  • 只可能登錄與Windows用戶(AD或LDAP)不同的實例。您將無法使用數據庫用戶登錄並通過使用不同的實例。

  • 要在SQL Server Always On中登錄以使其正常工作,必須使用Apache身份驗證登錄數據庫。