繁体   English   中英

如何连接到CodeIgniter中的SQL Server数据库?

[英]How do I connect to a SQL Server database in CodeIgniter?

如何连接到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');

使用$ db ['default'] ['dbdriver'] ='sqlsrv';
并在Windows上为SQL Server安装Microsoft Drivers for PHP

CodeIgniter MSSQL连接

我无法使用支持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;

它与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​​'] =>'utf8_general_ci';

$ db ['default'] ['swap_pre'] ='';

$ db ['default'] ['autoinit'] = TRUE;

$ db ['default'] ['stricton'] = FALSE;

在你的模型中使用相同

function selectagent($ table,$ agent){

$ field = $ this-> db-> get_where($ table,array('var1'=> $ agent,'day(date)'=> date('d')));

  $fields=$field->result(); return $fields; } 

我刚刚解决了这个问题。 我正在连接使用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);
}

我能够连接到数据库并创建数据库应用程序。

希望它能帮助有需要的人:)

请遵循以下简单步骤:

  1. 使用“混合模式”安装实例 - 启用。 如果你不确定看这个 - 视频以正确的顺序开始。 也许完全看它是个好主意。

  2. 更改' ... ci / application / config / database.php '中的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 ); 

在此输入图像描述

这个怎么样? 我看到它在某些服务器上运行。 这是Windows服务器吗?

$db['default']['dbdriver'] = "odbc";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE; 

进一步阅读

希望这可以帮助

您的配置代码没问题。 进一步阅读这里

如果您认为错误未显示,请转至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');
}
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM