[英]Connect to MS SQL on (Linux)Centos with Codeigniter
我喜欢使用Codeigniter在(Linux)Centos上连接MS SQL数据库。 刚安装了Centos Linux。 Apache / ftp可以工作。
但是知道我想通过Codeigniter连接到我的Linux机器中的内部SQL服务器。 我已经安装了Yum mssql-php,但是当我尝试在Codeigniter中连接时,它显示“无法使用提供的设置连接到数据库服务器。”。
我的问题是我需要在Centos机器上做什么才能将Codeigniter PHP与内部SQL 2008数据库连接?
我的Codeigniter设置是:
$db['default']['hostname'] = '***\***,1433';
$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;
在XAMPP Windows计算机上,使用sqlsrv可以很好地进行此设置。 但这仅在Windows计算机上受支持。
-编辑-
我的PHPinfo屏幕显示如下:
您需要在Linux机器上安装php-mssql扩展名。
步骤1: 安装所需的存储库
Remi对CentOS 6和Red Hat(RHEL)6的依赖性
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
Remi对CentOS 5和Red Hat(RHEL)5的依赖
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
步骤2: 安装扩充功能
yum --enablerepo=remi php-mssql
步骤3: 启用扩展
编辑您的php.ini
并加载php_mssql
库,然后重新启动Apache Web服务器。
通过在Linux机器上安装mssql,它目前对我有用。 Codeigniter具有以下配置:
$db['sql']['dbdriver'] = 'mssql';
$db['sql']['dbprefix'] = '';
$db['sql']['pconnect'] = TRUE;
$db['sql']['db_debug'] = FALSE;
$db['sql']['cache_on'] = FALSE;
$db['sql']['cachedir'] = '';
$db['sql']['char_set'] = 'utf8';
$db['sql']['dbcollat'] = 'utf8_general_ci';
$db['sql']['swap_pre'] = '';
$db['sql']['autoinit'] = TRUE;
$db['sql']['stricton'] = FALSE;
PHP配置:
Linux服务器上的FreetDs配置
在FreetDS配置中的Linux机器上配置连接很重要。 之后,您将在phpinfo中看到存在一个Active连接,一个Codeigniter可以与SQL数据库连接。
Codeigniter_project \\ application \\ config \\ database.php
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'admin',
'password' => 'Admin@321',
'database' => 'xxxx',
'dbdriver' => 'mysqli',
//'dbdriver' => 'mysql',
'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
);
$db['posdb']['hostname'] = 'xxx.xxx.xxx.xxx:1433';
//$db['posdb']['port'] = 1433; // or the port you configured on step 6
$db['posdb']['username'] = 'sa';
$db['posdb']['password'] = 'myself@123';
$db['posdb']['database'] = '
块引用
新';
$db['posdb']['dbdriver'] = 'mssql';
$db['posdb']['dbprefix'] = '';
$db['posdb']['pconnect'] = TRUE;
$db['posdb']['db_debug'] = FALSE;
$db['posdb']['cache_on'] = FALSE;
$db['posdb']['cachedir'] = '';
$db['posdb']['char_set'] = 'utf8';
$db['posdb']['dbcollat'] = 'utf8_general_ci';
$db['posdb']['swap_pre'] = '';
$db['posdb']['autoinit'] = TRUE;
$db['posdb']['stricton'] = FALSE;
考虑posdb是第二个将在2012年与远程mssql连接的数据库
要在Controller中获得此功能,
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Contrller_name extends CI_Controller{
public function __construct()
{
parent::__construct();
$this->load->model('my_model');
$this->load->library('session');
}
public function connet(){
$connnet = $this->my_model->connet();
echo "<pre>";
print_r($connnet);
//var_dump($connnet);
}
}
?>
现在在模型
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class My_model extends CI_Model
{
function __construct()
{
parent::__construct();
$this->load->helper('date');
$this->pos_db= $this->load->database('posdb', TRUE); // loading secondary remote database
}
function connet(){
$sql ="SELECT TOP 10 * FROM dbo.Party";
$query = $this->pos_db->query($sql);
$result = $query->result_array();
return $result;
}
}?>
大多数时候这对我有用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.