如何连接到CodeIgniter中的SQL Server数据库?
如何连接到CodeIgniter中的SQL Server数据库?如何连接到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');
这个怎么样?我已经看到它在一些服务器上工作。这是一个Windows服务器吗?
$db['default']['dbdriver'] = "odbc";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
进一步阅读: http://codefury.net/2011/01/codeigniter-php-iis-mysql-mssql/
希望这有助于
你的配置代码罚款。进一步阅读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');
}
?>
确定@starx,让我试试,并会回复你! – 2012-04-03 05:25:38
使用使用$分贝[ '缺省'] [ 'dbdriver'] = 'SQLSRV';
并安装Microsoft驱动程序PHP为SQL Server在Windows
是同一过程的MySQL。 使用下面给出的相同配置:
$ active_group ='default'; $ active_record = TRUE;
$ db ['default'] ['hostname'] ='xxx.xx.xx.XX \ SQLEXPRESS';
$分贝[ '缺省'] [ '用户名'] = 'SA';
$分贝[ '缺省'] [ '密码'] =
'XXXXXXX'; $ db ['default'] ['database'] ='xxxxx';
$ db ['default'] ['dbdriver'] ='mssql';
$分贝[ '缺省'] [ 'dbprefix'] = '';
$分贝[ '缺省'] [ 'pconnect'] = TRUE;
$分贝[ '缺省'] [ 'db_debug'] = TRUE;
$ db ['default'] ['cache_on'] = FALSE;
$分贝[ '缺省'] [ 'cachedir'] = '';
$ db ['default'] ['char_set'] ='utf8';
$ db ['default'] ['dbcollat'] =>'utf8_general_ci';
$ db ['default'] ['swap_pre'] ='';
$分贝[ '缺省'] [ 'autoinit'] = TRUE;
$ db ['default'] ['stricton'] = FALSE;
在模型中使用相同
功能selectagent($表,$剂) {
$字段= $这个 - > DB-> get_where($表,阵列( 'var1' => $ agent,'day(date)'=> date('d')));
$fields=$field->result(); return $fields; }
我不能让它与工作支持mssql
司机,所以我用sqlsrv
我通常与IP,端口作为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;
我刚刚得到这个问题就迎刃而解了。我被连接到MSSQL与微软的Azure
主办的步骤后,我互联网上的几个研究工作遵循如下:
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);
}
我是能够连接到数据库和创建数据库应用程序。
希望这将帮助别人需要:)
遵循以下简单步骤:
与“混合模式”安装实例 - 启用。如果您不确定手表this - 视频从正确的顺序开始。也许完全看它是个好主意。
-
变化 '... CI /应用/配置/ database.php中' 的DB-配置
$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 );
听起来像是你需要启用PHP的错误报告。 – shanethehat 2012-04-02 08:30:02
@shanethehat,在主要index.php文件中使用error_reporting()值尝试。不成功。 – 2012-04-02 09:04:27