Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] CodeIgniter SQL Server 2008

Estas en el tema de SQL Server 2008 en el foro de PHP en Foros del Web. Hola gente, Tengo un problema a la hora de conectar CI con SQL Server 2008. Para MySQL nunca tuve problemas, pero con SQL se complica ...
  #1 (permalink)  
Antiguo 29/08/2014, 09:09
 
Fecha de Ingreso: julio-2014
Mensajes: 79
Antigüedad: 9 años, 8 meses
Puntos: 1
SQL Server 2008

Hola gente,
Tengo un problema a la hora de conectar CI con SQL Server 2008. Para MySQL nunca tuve problemas, pero con SQL se complica un poco y hace ya 2 dias estoy tratando de hacerlo andar y no hay caso. Me lei un monton de temas del foro oficial pero tampoco pude.

Resulta que monte un VPS en mi PC con "Oracle VM VirtualBox" para montar el SQL. Y tengo en un web hosting mi aplicacion. el web hosting tiene todas las librerias necesarias habilitadas pero a la hora de entrar me sale un error:
Cita:
A Database Error Occurred

Unable to connect to your database server using the provided settings.
Filename: core/Loader.php
Line Number: 346
en el archivo database.php los parametros que indique son estos:
Código PHP:
$active_group 'default';
$active_record TRUE;

$db['default']['hostname'] = '190.xxx.xxx.xxx'//IP del VPS, que es la misma IP que mi PC
$db['default']['username'] = 'sa'// usuario por defecto del SQL
$db['default']['port']     = '1433'// puerto por defecto del SQL
$db['default']['password'] = 'test123'//Contaseña del usuario
$db['default']['database'] = 'dev'// Base de datos que cree
$db['default']['dbdriver'] = 'mssql';
$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
En los foros del CI encontre que para solucionar el problema habia que editar el db_debug y cambiarlo a FALSE. Pero lei la Documentacion oficial y lo que esto hace es esconder los errores de la base de datos, por lo tanto, no es la solucion.

Cansado de que no ande lo que hice fue montar xampp dentro del VPS que tengo en mi PC, habilite la libreria mssql y ademas descargue las sqlsrv para PHP 5.4 que es el que corre en esta version de xampp que descargue, para este caso los parametros en el database.php son estos:
Código PHP:
$active_group 'default';
$active_record TRUE;

$db['default']['hostname'] = 'WIN-0F94NN2J2FE'//IP del VPS, que es la misma IP que mi PC
$db['default']['username'] = 'sa'// usuario por defecto del SQL
$db['default']['port']     = '1433'// puerto por defecto del SQL
$db['default']['password'] = 'test123'//Contaseña del usuario
$db['default']['database'] = 'dev'// Base de datos que cree
$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
Pero tampoco funciona ya que el error que sale en el navegador es el siguiente:
Cita:
Fatal error: Call to undefined function sqlsrv_connect() in ... sqlsrv_driver.php on line 76
Para conectar con el SQL en el Management Studio lo hago de esta manera:


Para ver si era error de la estructura de la bse de datos o algo similar, cree la misma base de datos (mismo nombre, mismas tablas, mismas columnas) en mysql y conecta lo mas bien.
Nose si el problema es que instale mal el SQL, o lo estoy iniciando mal, o el problema es que esta dentro de un VPS en mi PC.

Última edición por RSmith; 29/08/2014 a las 09:16
  #2 (permalink)  
Antiguo 29/08/2014, 10:15
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: SQL Server 2008

En tu php tienes instalado el driver para mssql :

php_sqlsrv_53_ts_vc6.dll
php_pdo_sqlsrv_53_ts_vc6.dll

Código PHP:
Ver original 

Saludos
  #3 (permalink)  
Antiguo 29/08/2014, 11:00
 
Fecha de Ingreso: julio-2014
Mensajes: 79
Antigüedad: 9 años, 8 meses
Puntos: 1
Respuesta: SQL Server 2008

Cita:
Iniciado por matt_1985 Ver Mensaje
En tu php tienes instalado el driver para mssql :

php_sqlsrv_53_ts_vc6.dll
php_pdo_sqlsrv_53_ts_vc6.dll

Código PHP:
Ver original 

Saludos
Hola gracias por contestar,
Tengo instalada la version 54, porque esta version de xampp corre con php 5.4, es decir que tengo estas dos librerias:
php_sqlsrv_54_ts_vc6.dll
php_pdo_sqlsrv_54_ts_vc6.dll

estan dentro de la carpeta ext y en el php ya les sale las ";"
  #4 (permalink)  
Antiguo 29/08/2014, 13:18
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: SQL Server 2008

Si tienes instalado windows server o superior deberias tener instalado
php_sqlsrv_54_ts.dll
php_pdo_sqlsrv_54_ts.dll
php_sqlsrv_54_nts.dll
php_pdo_sqlsrv_54_nts.dll

La descarga del driver http://www.microsoft.com/en-us/downl....aspx?id=20098, lo debes instalar en la carpeta c:\xampp\php\ext
luego en el php.ini habilitas las extensiones

extension=php_sqlsrv_54_ts.dll
extension=php_pdo_sqlsrv_54_ts.dll

y para finalizar en el string de conexion

Código PHP:
Ver original
  1. $db['default']['dbdriver'] = 'sqlsrv';

sino te resulta comenta el error .

Saludos.
  #5 (permalink)  
Antiguo 29/08/2014, 14:36
 
Fecha de Ingreso: julio-2014
Mensajes: 79
Antigüedad: 9 años, 8 meses
Puntos: 1
Respuesta: SQL Server 2008

Hola buenas, al final el error era que tenia que poner la ip local, no la publica,es decir "localhost" y con eso ya anda.
Graciasm saludos.
  #6 (permalink)  
Antiguo 29/08/2014, 15:07
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: SQL Server 2008

Ah pense que estabas conectando a la BBDD de la VPS que mencionaste.

Etiquetas: codeigniter, mysql, server, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:58.