都換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
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']['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);
}
{
retrun $this->db_connect(TRUE);
}
同一個檔案,一定要修改的
function affected_rows()
{
return @sqlsrv_rows_affected($this->conn_id);
}
{
return @sqlsrv_rows_affected($this->conn_id);
}
這樣就OK啦!
沒有留言:
張貼留言