2015年3月17日 星期二

[php]CI 連接 MSSQL(使用apache)

還是要抱怨一下!
都換PHP了,竟然還要連MSSQL

在網路上試了幾個方法
最後終於成功啦!!

先去微軟官網,依照你的php版本,下載不同的Drivers
Microsoft Drivers for PHP for SQL Server

再去微軟官網,下載
Microsoft® ODBC Driver 11 for SQL Server® - Windows

修改\php\php.ini

把原本的
;extension=php_mssql.dll
改成
extension=php_pdo_sqlsrv_XXXXX.dll
extension=php_sqlsrv_XXXXX.dll

也可以不修改它,直接增加這兩行
修改得話,記得前面的";"號要拿掉,這是註解的意思

再把
mssql.secure_connection = On  <=Off 改成On

Apache 重啟!很重要!,但我只說一遍!


接下來換CI的config設定

\application\config\database.php

$db['default']['hostname'] = 'SQL伺服器名稱';
$db['default']['username'] = '使用者名稱';
$db['default']['password'] = '使用者密碼';
$db['default']['database'] = '資料庫名稱';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE; -> FALSE
$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;

如果
$db['default']['pconnect'] = TRUE;

不做修改的話
需修改
\system\database\drivers\sqlsrv\sqlsrv_driver.php

function db_pconnect()
{
retrun $this->db_connect(TRUE);
}


同一個檔案,一定要修改的
function affected_rows()
{
return @sqlsrv_rows_affected($this->conn_id);
}


這樣就OK啦!

沒有留言:

張貼留言