[英]How do I connect to a SQL Server database from CodeIgniter 3?
我正在嘗試將CodeIgniter 3項目連接到運行WAMP的Web服務器上的SQL Server 2008。
我嘗試使用sqlsrv,odbc和pdo dbdrivers連接到數據庫,但仍然無法執行此操作。
到目前為止,這是我嘗試過的
sqlsrv
和pdo_sqlsrv
顯示在WAMP本地主機頁面和phpinfo()頁面上 這是我的database.php文件,
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => '172.20.15.52',
'username' => 'ivrserver',
'password' => 'ivrserver',
'database' => 'HMS-Migration',
'dbdriver' => 'sqlsrv',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
但是我在項目的每個頁面上都收到此錯誤,
A Database Error Occurred
Unable to connect to your database server using the provided settings.
Filename: C:/wamp64/www/ghms/system/database/DB_driver.php
Line Number: 436
我試圖使用ODBC連接器。 我從ODBC數據源制作了系統DNS,該數據源連接到SQL Server數據庫並以以下方式更改database.php,
$db['default'] = array(
'dsn' => '',
'hostname' => 'mssqltest',
'username' => 'ivrserver',
'password' => 'ivrserver',
'database' => 'HMS-Migration',
'dbdriver' => 'odbc',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
這能夠連接數據庫,但事實證明查詢生成器不適用於ODBC 。 ¯\\ _(ツ)_ /¯
然后,我轉向嘗試pdo連接到SQL Server,並對database.php進行了以下更改
$db['default'] = array(
'dsn' => 'sqlsrv:server=172.20.15.52,1433;Database=HMS-Migration',
'hostname' => '',
'username' => 'ivrserver',
'password' => 'ivrserver',
'database' => '',
'dbdriver' => 'pdo',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
這要求我為PHP安裝sql驅動程序,但我想我已經安裝了它們!
A Database Error Occurred
SQLSTATE[IMSSP]: This extension requires the Microsoft ODBC Driver for SQL Server to communicate with SQL Server. Access the following URL to download the ODBC Driver for SQL Server for x64: https://go.microsoft.com/fwlink/?LinkId=163712
Filename: C:/wamp64/www/ghms/system/database/drivers/pdo/pdo_driver.php
Line Number: 142
我回去檢查驅動程序安裝,
php_pdo_sqlsrv_7_ts_x64.dll
php_sqlsrv_7_ts_x64.dll
extension=php_pdo_sqlsrv_7_ts_x64.dll
extension=php_sqlsrv_7_ts_x64.dll
盡管我已經盡力檢查了一切,因為它仍然沒有連接到數據庫-我在某個地方一定是錯的。 將CodeIgniter 3項目連接到SQL Server的正確方法是什么?
我想我找到了解決方案。 pdo dbdriver上的錯誤要求我安裝用於MS SQL的ODBC驅動程序,但我卻檢查了用於MS SQL的PHP驅動程序。 我去了錯誤中的鏈接,下載了ODBC驅動程序,現在看來可以正常工作! 傻我!
試試這個。定義你的sqlsrv:
$db['default'] = array(
'dsn' => '',
'hostname' => 'mssqltest',
'username' => 'ivrserver',
'password' => 'ivrserver',
'database' => 'HMS-Migration',
'dbdriver' => 'sqlsrv',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.