我正在開發一個要部署在運行IIS 7.5和PHP 5.3.8的64位Windows 2008 Server計算機上的Web項目。系統上的數據庫是Microsoft SQL Server 2008 R2。我正在開發CodeIgniter 2.1.0框架中的應用程序,並且我很難讓它連接到SQL Server。CodeIgniter MSSQL連接
我試過使用MSSQL,ODBC和SQLSRV數據庫驅動程序,並且遇到三個單獨的錯誤,爲每個不同的驅動程序。
這裏是我的ODBC配置:
$db['default']['hostname'] = 'SA';
$db['default']['username'] = 'petre';
$db['default']['password'] = 'start';
$db['default']['database'] = 'petre';
$db['default']['dbdriver'] = 'odbc';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
我在數據源定義SA的DNS,我敢肯定的是,用戶名和密碼都是有效的,並且該服務器接受混合身份驗證(Windows + SQL身份驗證)。
我自動加載DB庫和任何網頁訪問我,我得到:
Unable to connect to your database server using the provided settings.
Filename: C:\inetpub\wwwroot\system\database\DB_driver.php
Line Number: 124
如果我嘗試通過MSSQL連接,我只是得到了一個空白頁面,不管是什麼。
如果我嘗試使用SQLSRV使用以下PARAMS:
$db['default']['hostname'] = '127.0.0.1';
$db['default']['username'] = 'petre';
$db['default']['password'] = 'start';
$db['default']['database'] = 'petre';
$db['default']['dbdriver'] = 'sqlsrv';
即使我鏈接到php.ini中的SQLSRV DLL文件,我得到以下信息:
PHP Fatal error: Call to undefined function sqlsrv_connect() in C:\inetpub\wwwroot\system\database\drivers\sqlsrv\sqlsrv_driver.php on line 76
我一直在閱讀舊帖子和不同的意見,但我還沒有解決這個問題。
我只是在尋找一個單一的數據庫驅動程序的解決方案 - 任何獲得它連接的罰款。有沒有人有解決這個問題的建議?
您就可以使用PHP的內置功能,用於連接MSSQL或ODBC連接(從而笨了等式)? – Crontab 2011-12-29 15:11:47
「如果我嘗試通過MSSQL連接,我只是得到一個空白頁面,不管是什麼」聽起來像一個致命/解析/類似的錯誤,請檢查您的PHP。ini以確保您將這些錯誤記錄在文件中,並將相關日誌行發佈到您的問題中 – Lepidosteus 2011-12-29 15:55:34
@Crontab只要我嘗試瞭解決方案,就會發現問題是CodeIgniter的內置ODBC驅動程序,它在周圍添加了撇號表名。我通過odbc_driver.php快速瀏覽了一下,改變了引用表的方式並解決了問題! – 2012-01-10 13:42:45