Conectar Codeigniter con MSSQL en Ubuntu

A continuación muestro como conectar codeigniter con mssql en ubuntu

Para ubuntu 14 con php5

apt-get install unixodbc freetds freetds-dev tdsodbc php5-odbc

Para Ubuntu 16 con php7

apt-get install unixodbc freetds-common freetds-dev tdsodbc php7.0-odbc

Reiniciar Apache

service apache2 restart

Editar /etc/freetds/freetds.conf

[nombre-servidor]
host = 192.168.10.10
port = 1433
tds version = 7.3

La version TDS 7.3 es para SQL Server 2008, para ver un listado de los protocolos visitar este link

 

Editar /etc/odbcinst.ini 

[TDS]
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Description = FreeTDS driver
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so

 

Editar /etc/odbc.ini

[mi-servidor]
Driver = TDS
Description = Descripcion 
ServerName = nombre-servidor
Database = bd_ejemplo

El ServerName es el nombre del servidor en el archivo de configuración freetds.conf, en el archivo de configuración de codeigniter debe tener algo así:

$db['mssql'] = array(
'dsn' => '',
'hostname' => 'dsn=my-server;uid=myusername;pwd=mypassword',
'username' => '',
'password' => '',
'database' => 'MyDatabase',
'database' => '',
'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
);

y se llama de esta forma:

class Prueba_Model extends CI_Model{
	public function __construct(){
	parent::__construct();
	$this->pruebadb = $this->load->database('mssql', true);
}

 

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments