entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Error al trabajar Codeigniter y Sql Server

Buenas tardes,
Tengo una duda respecto en Codeigniter.
Bueno en realidad he trabajado Codeigniter y con Mysql, y todo bien.
Pero ahora quiero trabajar Codeigniter con SQL SERVER, busque información sobre como poder configurar, y bueno
instale los drivers sqlsrv y msodbcsql.msi, y bueno solo con una pequeña consulta logre hacer conexion a la base de datos.

<?php
$serverName='192.168.2.7';
$connectionInfo=array("Database"=>"DB_PEDIDOS_V3", "UID"=>"sa", "PWD"=>"Service1931", "CharacterSet"=>"UTF-8");
$conn_sis= sqlsrv_connect($serverName, $connectionInfo);

if($conn_sis){
echo "Conexion exitosa";
}
else
{
echo "Fallo en la conexion";
die(print_r(sqlsrv_errors(), true));
}
?>

Pero mi pregunta es la siguiente:
Tengo que trabajar con los mismos codigos en Codeigniter como lo hacia conectada a Mysql,
o tengo que cambiar, como por ejmplo al usar esto:
enter link description here

sqlsrv_connect — Abre una conexión a una base de datos Microsoft SQL Server
sqlsrv_errors — Devuelve información de errores y alertas (warnings) de la última operación SQLSRV realizada
sqlsrv_execute — Ejecuta una sentencia preparada con sqlsrv_prepare
sqlsrv_fetch_array — Devuelve una fila como un array

Tengo que utilizar "sqlsrv_ " en mis codigos cuando este programando, debo de utilizarlo??
O debo de seguir con el anterior:

<?php
    Class Mautor extends CI_Model{
        function __construct(){
            $this->load->database();
        }
        function agregarnuevoautor($data){
            $this->db->insert("autor",array(
                "Nombre" => $data["Nombre"],
                "Apellido" => $data["Apellido"]));
        }

    function get_autor(){
        $query=$this->db->get('autor'); // equivale a select * from contactos
        return $query;
    }

    function consulta($query){
        $consulta=$this->db->query($query);
        return $consulta;
    }

    function obtenerporid($id){
            $this->db->select("*"); //campos
            $this->db->from("autor");//tabla
            $this->db->where("Cod_Autor",$id);//condicion
            // select * from contactos where "Id_contacto" = $id
            $consulta = $this->db->get();
            return $consulta;
        }

        function modifica_autor($id, $data){
            $this->db->where('Cod_Autor',$id);
            $this->db->update('autor',$data);
        }

    }
?>

Por favor ayudarme.
Por que lo he estado intentando trabajar los códigos como lo hacia cuando estaba conectada con Mysql, he estado haciendo,
pero no se que ocurre que no ejecuta, sale errores, y no se como hacerlo.

1 Respuesta

1voto

MatrixCampus Puntos340

Hola,

Tienes que usar el driver PDO que trae CodeIgniter y tener instalado el driver en php php_pdo_sqlsrv_VERSION_ts.dll o el que toque dependiendo de tu servidor y versión de PHP.

Una vez configurado el código de la clase Mautor será completamente válido.
El índice 'dsn' del array es un ejemplo, adáptalo a tus valores de configuración.


$db['default'] = array(
  'dsn' => 'sqlsrv:server=127.0.0.1,1433;Database=mydb',
  'hostname' => 'IP o localhost',
  'username' => 'usuario',
  'password' => 'password',
  'database' => 'database',
  'dbdriver' => 'pdo',
  '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
);

Espero que haya sido de utilidad.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta