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

Symfony 2 - ingenieria inversa con Oracle 8

Tengo el framework symfony 2.
Utilizo este comando:

php app/console doctrine:mapping:import PrivadoBundle annotation

Y me muestra este error:

[Symfony\Component\Debug\Exception\ContextErrorException]
 Notice: Use of undefined constant OCI_COMMIT_ON_SUCCESS - assumed 'OCI_COMMIT_ON_SUCCESS' in C:\xampp\htdocs\dous\v
 endor\doctrine\dbal\lib\Doctrine\DBAL\Driver\OCI8\Driver.php line 36

Alguna idea alguna sugerencia?
En la linea 36 esta esto:

public function connect(array $params, $username = null, $password = null, array $driverOptions = array())
{
    return new OCI8Connection(
        $username,
        $password,
        $this->_constructDsn($params),
        isset($params['charset']) ? $params['charset'] : null,
        isset($params['sessionMode']) ? $params['sessionMode'] : OCI_DEFAULT,
        isset($params['persistent']) ? $params['persistent'] : false
    );
}

Con PHP normal me conecto sin problema.

Saludos

1 Respuesta

2votos

Leonardo-Tadei Puntos227320

Hola Juan Carlos,

El error

Notice: Use of undefined constant OCI_COMMIT_ON_SUCCESS - assumed 'OCI_COMMIT_ON_SUCCESS' 

se debe a que la constante 'OCI_COMMIT_ON_SUCCESS' no está previamente definida.

Lo ideal sería que busques la difinición de esta constante y le hagas un include a ese archivo para tenerla disponible al momento de la conexión.

Es menos elegante, pero también podrías definirla en tu código previo a usar a conexión:

define('OCI_COMMIT_ON_SUCCESS', true);

Conectando con "PHP normal" funciona porque tu código no debe usar esta constante.

PD: qué tiene que ver la ingeniería inversa con esto? Espero te sirva mi respuesta.

0voto

juanitourquiza comentado

Gracias tu respuesta.
Tiene que ver porque tengo una base de datos en produccion y la misma quiero manejarla con doctrine.
Por eso coloco este codigo:

php app/console doctrine:mapping:import PrivadoBundle annotation

Y luego me muestra el error.


Sobre la constante: 'OCICOMMITON_SUCCESS' donde la debo definir eso no me quedo muy claro.

1voto

Leonardo-Tadei comentado

Hola Juan Carlos,

definí la constante en cualquier parte del código, siempre y cuando sea antes de que sea nesario usar el valor.

Sin conocer la estructura de tu código, no podría decirte a dónde sería mejor. Tal vez tengas un archivo de configuración general con el nombre de usuario y la clave de la DB: ese sería un buen lugar.

0voto

juanitourquiza comentado

Esa variable estaba definido existia un problema con el php.ini con eso se soluciono.
Gracias y Saludos

0voto

Peter comentado

Juan Carlos, por favor agrega una respuesta con la solución y márcala como correcta :)

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