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); }