Yii Framework Forum: Como me conecto a SQL SERVER - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Como me conecto a SQL SERVER Rate Topic: -----

#1 User is offline   jorgelondono 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 04-March 11

Posted 23 March 2011 - 02:44 PM

Un saludo a todos.
Soy nuevo en Yii, y necesito si alguien puede ayudarme a darme las indicaciones para conectarme desde Yii a SQL Server.

Muchas Gracias.
0

#2 User is offline   Jack Fiallos 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 256
  • Joined: 15-October 09
  • Location:Mexico

Posted 23 March 2011 - 02:47 PM

Aqui hay algo de informacion para que empieces a leer..

http://www.yiiframework.com/doc/guide/1.1/en/database.dao

Ahi mismo encontraras la cadena de conexion para utilizar sql server.. Saludos
Celestic Dev Team
Yii Open Source Project Manager
0

#3 User is offline   jorgelondono 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 04-March 11

Posted 25 March 2011 - 03:59 PM

View PostJack Fiallos, on 23 March 2011 - 02:47 PM, said:

Aqui hay algo de informacion para que empieces a leer..

http://www.yiiframework.com/doc/guide/1.1/en/database.dao

Ahi mismo encontraras la cadena de conexion para utilizar sql server.. Saludos


Hola Jack,

Mira segun la información que me enviaste debo activar el codigo que hay en CDbconnection.php de la siguiente manera.

$connection=new CDbConnection($dsn,$username,$password);
$connection->active=true;


Y efectivamente lo active, ahora mis datos de conexion estan asi en el archivo main.php y console.php dentro de protected/config

'db'=>array(
'class'=>'CDbConnection',
'connectionString'=>'mssql:host=DESARROLLO-HP;dbname=vivienda',
'username'=>'usr_fonede',
'password'=>'fepd_pwd',
'charset' => 'utf8',
),

Te pregunto debo configurar algo mas?
tengo el siguiente error,

exception 'CDbException' with message 'CDbConnection failed to open the DB conne
ction: could not find driver' in C:\Projects\CAJAS\yii\framework\db\CDbConnectio
n.php:293
Stack trace:
#0 C:\Projects\CAJAS\yii\framework\db\CDbConnection.php(266): CDbConnection->open()
#1 C:\Projects\CAJAS\yii\framework\db\CDbConnection.php(244): CDbConnection->setActive(true)
#2 C:\Projects\CAJAS\yii\framework\base\CModule.php(372): CDbConnection->init()
#3 C:\Projects\CAJAS\yii\framework\base\CModule.php(101): CModule->getComponent('db')
#4 C:\Projects\CAJAS\yii\framework\cli\commands\ShellCommand.php(150) : eval()'dcode(1): CModule->__isset('db')
#5 C:\Projects\CAJAS\yii\framework\cli\commands\ShellCommand.php(150): eval()
#6 C:\Projects\CAJAS\yii\framework\cli\commands\ShellCommand.php(99): ShellCommand->runShell()#7 C:\Projects\CAJAS\yii\framework\console\CConsoleCommandRunner.php(63): ShellCommand->run(Array)
#8 C:\Projects\CAJAS\yii\framework\console\CConsoleApplication.php(88): CConsoleCommandRunner->run(Array)
#9 C:\Projects\CAJAS\yii\framework\base\CApplication.php(155): CConsoleApplication->processRequest()
#10 C:\Projects\CAJAS\yii\framework\yiic.php(33): CApplication->run()
#11 C:\Projects\CAJAS\fovis\protected\yiic.php(7): require_once('C:\Projects\CAJ...')
#12 {main}

Sinceramente no se que estoy haciendo mal, si me puedes ayudar un poco mas te agradeceria.

Saludos
Jorge, El novato de YII :)
0

#4 User is offline   Jack Fiallos 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 256
  • Joined: 15-October 09
  • Location:Mexico

Posted 25 March 2011 - 04:06 PM

Tienes activada la extension de php_mssql y el pdo en PHP ?
Celestic Dev Team
Yii Open Source Project Manager
0

#5 User is offline   jorgelondono 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 04-March 11

Posted 25 March 2011 - 04:22 PM

View PostJack Fiallos, on 25 March 2011 - 04:06 PM, said:

Tienes activada la extension de php_mssql y el pdo en PHP ?


Hola Jack,

Mira, si esta activado, ya que actualmente logro conectarme a sql server haciendo la conexion yo mismo, de la siguiente manera.

$conection = mssql_connect("DESARROLLO-HP","usr_fonede","fepd_pwd") or die("no se puede conectar a SQL Server");
//aqui selecciono la base Northwind que ya trae MS SQL v.8 como ejemplo
mssql_select_db("vivienda",$conection);
//tu consulta la asignas a un string $SQL
$SQL = "SELECT * FROM Empresas";

Funciona de maravilla.

Pero cuando lo hago por YII, No se que pasa.

Gracias Jack
0

#6 User is offline   Jack Fiallos 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 256
  • Joined: 15-October 09
  • Location:Mexico

Posted 25 March 2011 - 04:44 PM

puedes definir el puerto en la conexion y utilizar emulatePrepare

'db'=>array(
'class'=>'CDbConnection',
'connectionString'=>'mssql:host=DESARROLLO-HP;port=1433;dbname=vivienda',
'username'=>'usr_fonede',
'password'=>'fepd_pwd',
'charset' => 'utf8',
'emulatePrepare'=>'false', // con esto desactivado
),


U otra cosa podria ser que intentes utilizar sqlsrv en lugar de mssql en la cadena de conexion
Celestic Dev Team
Yii Open Source Project Manager
0

#7 User is offline   jorgelondono 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 04-March 11

Posted 25 March 2011 - 04:53 PM

View PostJack Fiallos, on 25 March 2011 - 04:44 PM, said:

puedes definir el puerto en la conexion y utilizar emulatePrepare

'db'=>array(
'class'=>'CDbConnection',
'connectionString'=>'mssql:host=DESARROLLO-HP;port=1433;dbname=vivienda',
'username'=>'usr_fonede',
'password'=>'fepd_pwd',
'charset' => 'utf8',
'emulatePrepare'=>'false', // con esto desactivado
),


U otra cosa podria ser que intentes utilizar sqlsrv en lugar de mssql en la cadena de conexion

Hola Jack,
Puse eso en el archivo main y console de config y sale lo siguiente, te voy a escribir lo que pongo por CMD para probar la conexion.

C:\Program Files (x86)\Zend\ZendServer\bin>c:\projects\CAJAS\fovis\protected\yiic shell c:\projects\CAJAS\fovis\index.php
Yii Interactive Tool v1.1 (based on Yii v1.1.6)
Please type 'help' for help. Type 'exit' to quit.
>> echo isset(Yii::app()->db);
exception 'CDbException' with message 'CDbConnection.connectionString cannot beempty.' in C:\Projects\CAJAS\yii\framework\db\CDbConnection.php:278Stack trace:
#0 C:\Projects\CAJAS\yii\framework\db\CDbConnection.php(263): CDbConnection->open()
#1 C:\Projects\CAJAS\yii\framework\base\CComponent.php(152): CDbConnection->setActive(true)
#2 C:\Projects\CAJAS\yii\framework\db\CDbConnection.php(25): CComponent->__set('active', true)
#3 C:\Projects\CAJAS\yii\framework\YiiBase.php(389): include('C:\Projects\CAJ...')
#4 C:\Projects\CAJAS\yii\framework\YiiBase.php(290): YiiBase::autoload('CDbConnection')
#5 C:\Projects\CAJAS\yii\framework\YiiBase.php(190): YiiBase::import('CDbConnection', true)
#6 C:\Projects\CAJAS\yii\framework\base\CModule.php(371): YiiBase::createComponent(Array)
#7 C:\Projects\CAJAS\yii\framework\base\CModule.php(101): CModule->getComponent(
'db')#8 C:\Projects\CAJAS\yii\framework\cli\commands\ShellCommand.php(150) : eval()'d code(1): CModule->__isset('db')
#9 C:\Projects\CAJAS\yii\framework\cli\commands\ShellCommand.php(150): eval()
#10 C:\Projects\CAJAS\yii\framework\cli\commands\ShellCommand.php(99): ShellCommand->runShell()
#11 C:\Projects\CAJAS\yii\framework\console\CConsoleCommandRunner.php(63): ShellCommand->run(Array)
#12 C:\Projects\CAJAS\yii\framework\console\CConsoleApplication.php(88): CConsoleCommandRunner->run(Array)
#13 C:\Projects\CAJAS\yii\framework\base\CApplication.php(155): CConsoleApplication->processRequest()
#14 C:\Projects\CAJAS\yii\framework\yiic.php(33): CApplication->run()
#15 C:\Projects\CAJAS\fovis\protected\yiic.php(7): require_once('C:\Projects\CAJ...')
#16 {main}

Gracias Jack.
0

#8 User is offline   Jack Fiallos 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 256
  • Joined: 15-October 09
  • Location:Mexico

Posted 25 March 2011 - 04:54 PM

Leyendo un poco por internet dicen que quizas necesites instalar la extension php_pdo_odbc.dll en tu php

mas que eso no se me ocurre nada..
Celestic Dev Team
Yii Open Source Project Manager
0

#9 User is offline   jorgelondono 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 04-March 11

Posted 31 March 2011 - 02:49 PM

Hola Jack,

Gracias por tu ayuda, pero no he podido lograrlo, quisiera hacerlo paso a paso, para ver que estoy haciendo mal y no se si me puedas ayudar.

1. instale la aplicacion (con webapp)
2. configure los archivos main.php y console.php dentro de config de la siguiente manera

'connectionString' => 'mssql:host=DESARROLLO-HP;dbname=vivienda',
'emulatePrepare' => false,
'username' => 'usr_fonede',
'password' => 'fepd_pwd',
'charset' => 'utf8',

El archivo test no lo he tocado y no he tocado ningún otro archivo

Algunas preguntas.

- Como hago para comprobar si quedo bien la conexión con Sql Server?
- Le falta algo a esos 2 archivos?

Les ofrezco disculpas por escribir tanto pero necesito lograr esa conexión y creo que la mejor manera es hacerla paso a paso.


Gracias Jack


View PostJack Fiallos, on 25 March 2011 - 04:54 PM, said:

Leyendo un poco por internet dicen que quizas necesites instalar la extension php_pdo_odbc.dll en tu php

mas que eso no se me ocurre nada..

0

#10 User is offline   Jack Fiallos 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 256
  • Joined: 15-October 09
  • Location:Mexico

Posted 31 March 2011 - 04:30 PM

Hice unas rapidas pruebas y en php active lo siguiente:

php_mssql
php_pdo
php_pdo_mssql


El mensaje del driver no encontrado ya no aparece porque se activo php_pdo_mssql .. en realidad mis problemas fueron otros que creo que solamente tienen que ver con la configuracion de mi servidor de BD .. cosas de configuracion del usuario y demas.. pero en la cadena de conexion no tuve problemas.
Celestic Dev Team
Yii Open Source Project Manager
0

#11 User is offline   jorgelondono 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 11
  • Joined: 04-March 11

Posted 01 April 2011 - 10:46 AM

Hola Jack,

Te pregunto algo,
Hay algo que pueda hacer para chequear la conexión, y saber si se está conectando antes de comenzar a crear los CRUD.

Gracias Jack



View PostJack Fiallos, on 31 March 2011 - 04:30 PM, said:

Hice unas rapidas pruebas y en php active lo siguiente:

php_mssql
php_pdo
php_pdo_mssql


El mensaje del driver no encontrado ya no aparece porque se activo php_pdo_mssql .. en realidad mis problemas fueron otros que creo que solamente tienen que ver con la configuracion de mi servidor de BD .. cosas de configuracion del usuario y demas.. pero en la cadena de conexion no tuve problemas.

0

#12 User is offline   Joan Kent 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 8
  • Joined: 04-May 15

Posted 19 January 2016 - 05:32 PM

Hola jorgelondono lograste conectarte? tenia el mismo problema con SQL SERVER, anda perfecto con php, pero lo meto a yii y ya no funciona, no me conecta

'db'=>array(
'connectionString' => 'sqlsrv:server=192.168.10.29;database=PBI',
'username' => 'MYUSER',
'password' => 'MYPASS',
),

saludos.

J.
0

#13 User is online   gifrancohe 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 99
  • Joined: 26-January 15

Posted 21 January 2016 - 04:29 PM

Hola Jorge.

Puedes comprobar la conexión intentando usar el generador de codigó de Yii, y de esta forma tendras la certeza de que tienes activa la conexión con la BD.

Saludos,

Nota: de acuerdo a lo que has mostrado, pensaría que te falta activar en el servidor, en los modulos de PHP la extensión para trabajar con SQL Server.
0

#14 User is offline   lordiego2015 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 25
  • Joined: 26-May 15

Posted 21 September 2016 - 07:38 AM

Hola, yo tenia el mismo problema pero pude conectarme con yii2 a sqlserver2008. Les paso un link con el video q me sirvio muchisimo. https://www.youtube....?v=1eudslEMba0.

Pero básicamente sino me falla la memoria pq hace mucho q lo hice es:

se descarga el driver de sqlserver para php (ojo no cualquiera , se debe ver q versión de php se tiene instalado y de ahí se descarga el driver de aqui: https://msdn.microso...y/cc296170.aspx), si tu versión de php no esta en el listado te conviene instalar una versión inferior o superior q este contemplado en el la pagina de msdn.

luego se sigue los pasos del video.

mi archivo de conexión quedo de la siguiente manera


<?php
return [
'language'=>'es',
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'sqlsrv:Server=SERVIDORBD;Database=expedientes',

'username' => 'sa',
'password' => 'tucontraseña',
'charset' => 'utf8',


],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => true,
],
],
];



las extensiones php_mssql
php_pdo
php_pdo_mssql ya se no usan mas por eso no puedes lograr la conexion, cuando descargues el divres de sqlserver para php, al instalarlo te generara nuevas extensiones q hay q elegir la q corresponda, numero de version y si la base de datos esta en la misma pc q el sitio. Esa extension seleccionada se la pegua en la carpeta de extensiones del php, se la agrega en php.ini para q quede seleccionada. Espero q sirva de ayuda.

Pd: todo esto esta explicado mejor en el video. Saludos
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users