說這個path 可以自動猜對的driver,可是卻沒注意到該檔案上方預設了。所以如果傳入參數也沒有跑Switch 判斷、修改。
protected $_pdoType = 'mssql';
害我不斷產生兩種錯誤。
- 使用 Adapter_PDO_MSSQL產生:mssql driver is not currently installed
- 使用 Adapter_Sqlsrv 產生:Sqlsrv extension is required for this adapter but the extension is not loaded
使得我不斷找是哪個沒有裝到或者沒有載入。
看了 http://www.php.net/manual/en/ref.pdo-dblib.php 說明知道,Sqlsrv 是指給windows 使用,也很多網路上找到的解法都是裝新的windows 專用 driver就解決了。
但是我的環境在 CentOS 所以一直找不到Sqlsrv driver (根本沒有,當然找不到XD)
接著回正題說到,Zend_Db_Adapter 說明頁提到要用 php-dblib 連 MSSQL
在 PHP 5.3.x 似乎找不到 PDO MSSQL driver ,而 Zend_Db_Adapter_Pdo_Mssql 又被預設成 'mssql'。
解法:
- 建立的時候增加 'pdoType' => 'dblib'
- 修改 Zend_Db_Adapter_Pdo_Mssql 參數 $_pdoType = 'mssql'; 改成 protected $_pdoType = 'dblib';
NOTE:Zend Framework 1.12.3
沒有留言:
張貼留言