如何在CodeIgniter中连接到SQL Server数据库?
我目前正在CodeIgniter中启动一个应用程序,我想使用SQL Server。
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = '#.#.#.27';
$db['default']['username'] = '@@@@@@';
$db['default']['password'] = '@@@@@@@@@';
$db['default']['database'] = '$$$$$$$$$$$$$';
$db['default']['dbdriver'] = 'mssql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$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;
自动加载数据库后,它只显示一个没有错误的空白页面。您能否告诉我使用SQL Server数据库需要做哪些其他更改?
#autoload.php#
$autoload['libraries'] = array('database');
答案 0 :(得分:3)
使用$ db ['default'] ['dbdriver'] ='sqlsrv';
在Windows上安装适用于SQL Server的PHP驱动程序
答案 1 :(得分:3)
我无法使用mssql
的支持的驱动程序,因此我使用了sqlsrv
我通常用 ip,port 作为hostname
连接,所以我改变了。
pconnect
也给了我一些问题。我将其设置为FALSE
并开始工作。
以下是我开始工作的配置:
$db['default']['hostname'] = '127.0.0.1,1433';
$db['default']['username'] = 'username1';
$db['default']['password'] = 'secretpassword';
$db['default']['database'] = 'databasename';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
答案 2 :(得分:0)
这个怎么样?我看到它在某些服务器上运行。这是Windows服务器吗?
$db['default']['dbdriver'] = "odbc";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
希望这会有所帮助
答案 3 :(得分:0)
您的配置代码没问题。进一步阅读here
如果您认为错误没有显示,请转到index.php
并在顶部放置以下代码段以显示错误。
error_reporting(E_ALL);
其他,然后检查MSSQL服务是否正在运行且是否可访问。可以创建一个简单的.php
并尝试使用普通代码进行连接。
非CI文件,例如,
<?php
$server = 'YOURPC\SQLEXPRESS';
$link = mssql_connect($server, 'user', 'pass');
if (!$link) {
die('Something went wrong while connecting to MSSQL');
}
?>
答案 4 :(得分:0)
它与mysql的过程相同。 使用下面给出的相同配置:
$ active_group ='default'; $ active_record = TRUE;
$ db ['default'] ['hostname'] ='xxx.xx.xx.xx \ SQLEXPRESS';
$ db ['default'] ['username'] ='sa';
$ db ['default'] ['password'] =
'XXXXXXX'; $ db ['default'] ['database'] ='xxxxx';
$ db ['default'] ['dbdriver'] ='mssql';
$ db ['default'] ['dbprefix'] ='';
$ db ['default'] ['pconnect'] = TRUE;
$ db ['default'] ['db_debug'] = TRUE;
$ db ['default'] ['cache_on'] = FALSE;
$ db ['default'] ['cachedir'] ='';
$ db ['default'] ['char_set'] ='utf8';
$ db ['default'] ['dbcollat'] =&gt; 'utf8_general_ci';
$ db ['default'] ['swap_pre'] ='';
$ db ['default'] ['autoinit'] = TRUE;
$ db ['default'] ['stricton'] = FALSE;
在您的模型中使用与
相同的内容function selectagent($ table,$ agent) {
$ field = $ this-&gt; db-&gt; get_where($ table,array('var1') =&GT; $剂, '日子(日期)'=&GT;日期( 'd')));
$fields=$field->result(); return $fields; }
答案 5 :(得分:0)
我刚刚解决了这个问题。我正在连接到使用microsoft Azure托管的MSSQL
在互联网上进行的一些研究工作后,我遵循的步骤如下:
database.cfg:
$db['default']['hostname'] = 'XXXXXXX.database.windows.net';
$db['default']['username'] = 'username';
$db['default']['password'] = 'password';
$db['default']['database'] = 'databasename';
$db['default']['dbdriver'] = 'sqlsrv';
$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;
主要是dbdriver,pcconnect和你应该正确配置的主机名。休息很常见。从您的azure数据库详细信息中获取主机名。
我还修改了几个系统文件,因为我听说有DB驱动程序的问题。
系统/数据库/驱动程序/ SQLSRV / sqlsrv_driver.php
function db_pconnect()
{
//$this->db_connect(TRUE);
return $this->db_connect(TRUE);
}
和
function affected_rows()
{
//return @sqlrv_rows_affected($this->conn_id);
return @sqlsrv_num_rows($this->result_id);
}
我能够连接到数据库并创建数据库应用程序。
希望它能帮助有需要的人:)
答案 6 :(得分:0)
遵循以下简单步骤:
使用&#34;混合模式&#34; -enabled安装实例。如果您不确定观看this - 视频以正确的顺序开始。也许完全看它是个好主意。
更改&#39; ... ci / application / config / database.php &#39;中的db-config。
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'sa', // <- use 'sa'
'password' => 'THE_PASSWORD_YOU_SET_ON_INSTALL', // "mixed-mode"
'database' => 'ci',
'dbdriver' => 'sqlsrv',
// 'dbdriver' => 'mysqli', // <- my old "non-server" config (approx. 70% slower)
'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
);