簡體   English   中英

在Codeigniter中從Linux連接外部SQL Server(MSSQL)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM