[英]Connect external SQL Server (MSSQL) from linux in Codeigniter
我有一個Debian服務器來運行我的CodeIgniter項目。 我使用MySQL作為數據庫。
現在,我需要連接一個外部數據庫。 但這不是MySQL服務器,而是SQL Server。
我嘗試了這個:
$db['external']['hostname'] = 'tcp:[nameserver],[port]';
$db['external']['username'] = '[username]';
$db['external']['password'] = '[password]';
$db['external']['database'] = '[dataBaseName]';
$db['external']['dbdriver'] = 'mssql';
$db['external']['dbprefix'] = '';
$db['external']['pconnect'] = FALSE;
$db['external']['db_debug'] = TRUE;
$db['external']['cache_on'] = FALSE;
$db['external']['cachedir'] = '';
$db['external']['char_set'] = 'utf8';
$db['external']['dbcollat'] = 'utf8_general_ci';
$db['external']['swap_pre'] = '';
$db['external']['autoinit'] = TRUE;
$db['external']['stricton'] = FALSE;
我的測試文件是這樣的:
$DB2 = $this->load->database('external', TRUE);
$rs = $DB2->query("SELECT * FROM table");
$ret = $rs->result_array();
var_dump($ret);
外部公司可以正確連接,因此憑據正常。
當我使用$db['external']['dbdriver'] = 'sqlsrv'
,輸出為
致命錯誤:調用未定義函數sqlsrv_connect()
我該如何解決?
從文檔中 :
SQLSRV擴展名可以在以下操作系統上使用:
- Windows Vista Service Pack 2或更高版本
- Windows Server 2008 Service Pack 2或更高版本
- Windows Server 2008 R2
- Windows 7的
您的Debian服務器將無法使用sqlsrv_
函數。
如果需要從Linux連接到SQL Server,則可以使用PDO_DBLIB
庫 。 在CodeIgniter中,您似乎需要手動設置DSN :
某些數據庫驅動程序(例如PDO,PostgreSQL,Oracle,ODBC)可能需要提供完整的DSN字符串。 如果是這種情況,則應使用“ dsn”配置設置,就像使用驅動程序的基礎本機PHP擴展一樣
您必須在連接字符串中使用PDO_DBLIB
DSN ,該字符串可能以sybase:
, mssql:
或dblib:
開頭(取決於PHP的編譯方式)。 看起來Debian軟件包可以使用sybase:
prefix 。
試試這個$ rs = $ this-> DB2-> query(“ SELECT * FROM table”);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.