簡體   English   中英

CodeIgniter 3.1.10:DSN無法使用ODBC連接到遠程數據庫

[英]CodeIgniter 3.1.10 : Cannot connect to remote database by DSN using ODBC

我有一個問題,如上所述,DSN使用CodeIgniter 3.1.10中的ODBC驅動程序連接到遠程數據庫。 DSN已在ODBC數據源管理器中創建。 當我想要將系統從CodeIgniter 2.2.3更新到3.1.10時,會出現問題。

它實際上適用於CodeIgniter 2.2.3,代碼如下:

$db['default']['hostname'] = "myDSN";
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = 'myDatabase';
$db['default']['dbdriver'] = 'odbc';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = 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;

但它顯示錯誤如下:

當前未加載數據庫驅動程序

當我嘗試使用CodeIgniter 3.1.10上的相同設置時,代碼如下:

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'myDSN',
    'username' => '',
    'password' => '',
    'database' => 'myDatabase',
    'dbdriver' => 'odbc',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => TRUE,
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

但是在CodeIgniter 3.1.10中,當我使用以下代碼手動連接到數據庫時連接成功:

$dbconn=odbc_connect("myDSN", "", "");

if(!$dbconn)
{
    die("Could not connect Adaptive Server Anywhere: ".odbc_errormsg(). odbc_error());
} else {
    echo "connection success";
}

因此,由於它可以在使用手動代碼時連接,有人可以使用CodeIgniter 3.1.10中的數據庫代碼指導我如何成功連接嗎?

經過相當多的研究 - 我認為問題不在於ODBC元素,而在於你沒有自動加載數據庫庫。 該錯誤與ODBC無關,但正如我在此處找到的: Codeigniter:數據庫驅動程序當前未加載是因為我不相信您已自動加載數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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