Foros del Web » Programando para Internet » PHP »

Mi primer conexion con Oracle desde PHP [AYUDA]

Estas en el tema de Mi primer conexion con Oracle desde PHP [AYUDA] en el foro de PHP en Foros del Web. Hola chicos, ayer estuve viendo que alternativas tenia para este problemita. Para empezar les cuento que ya decidi que voy a utilizar para conectarme y ...
  #1 (permalink)  
Antiguo 22/02/2011, 08:32
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Mi primer conexion con Oracle desde PHP [AYUDA]

Hola chicos, ayer estuve viendo que alternativas tenia para este problemita.
Para empezar les cuento que ya decidi que voy a utilizar para conectarme y consultar OCI8.

Muy bien no me llevo con php.net y les pido que me den una mano.

esta es la funcion basica para conectarme con Oracle:

Código PHP:
Ver original
  1. $conn = oci_connect('proovedor', 'o******', '200.68.***.***/TERMINAL.WORLD');
  2.  
  3. if (!$conn) {
  4.     $e = oci_error();
  5.     trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
  6. }

oci_connect()
¿el primer parametro es el usuario?
¿el segundo la contraseña?
y ¿el tercero IP y base de datos separados por una barra ?.

Esa es mi primer duda.

Si bien ak tenemos una descripcion de la funcion oci_connect() , y en esta cito:

Cita:
Contiene la Instancia Oracle a conectarse. Puede ser una » Cadena de fácil conexión, o un Nombre de Conexión del fichero tnsnames.ora, o del nombre de una instancia local de Oracle.
La cual a mi me dieron esta cadena de conexion:

(DESCRIPTION = ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.77)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL)))


y tengo el usuario y contraseña. pero no se como armar bien la funcion.


me gustaria armar un IF para ver si conecta bien:

Código PHP:
Ver original
  1. <?php
  2. if(oci_connect() ){
  3. echo "Conexion OK!";
  4. }else{
  5. die (oci_error ());
  6. }
  7. ?>

Bueno gracias por tomarse unos min. en leer e interiorizarte en el tema
__________________
Mono programando!
twitter.com/eguimariano
  #2 (permalink)  
Antiguo 22/02/2011, 09:45
 
Fecha de Ingreso: diciembre-2009
Ubicación: La Paz - Bolivia
Mensajes: 67
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Mi primer conexion con Oracle desde PHP [AYUDA]

Bueno así de rápido cuando buscas en el manual oficial de php... o si quieres puedes googlear ...
Código PHP:
<?php

  $conexion 
oci_connect('hr''hr''orcl');
  if (!
$conexion) {
    
$e oci_error();
    print 
htmlentities($e['message']);
    exit;
  }

  
$consulta 'SELECT * FROM DEPARTMENTS';

  
$id_sentencia oci_parse($conexion$consulta);
  if (!
$id_sentencia) {
    
$e oci_error($conexion);
    print 
htmlentities($e['message']);
    exit;
  }

  
$r oci_execute($id_sentenciaOCI_DEFAULT);
  if (!
$r) {
    
$e oci_error($id_sentencia);
    echo 
htmlentities($e['message']);
    exit;
  }

  print 
'<table border="1">';
  while (
$fila oci_fetch_array($id_sentenciaOCI_RETURN_NULLS)) {
    print 
'<tr>';
       foreach (
$fila as $item) {
         print 
'<td>'.($item?htmlentities($item):'&nbsp;').'</td>';
       }
       print 
'</tr>';
  }
  print 
'</table>';

  
oci_close($conexion);
?>
Ejemplo 2. Insertar con variables enlazadas
Código PHP:
<?php

  
// Antes de ejecutar, cree la tabla:
  //   CREATE TABLE MITABLA (mid NUMBER, myd VARCHAR2(20));

  
$conexion oci_connect('scott''tiger''orcl');

  
$consulta 'INSERT INTO MITABLA VALUES(:myid, :mydata)';

  
$id_sentencia oci_parse($conexion$consulta);

  
$id 60;
  
$datos 'Algun dato';

  
oci_bind_by_name($id_sentencia':myid'$id);
  
oci_bind_by_name($id_sentencia':mydata'$datos);

  
$r oci_execute($id_sentencia);

  if (
$r)
    print 
"Una fila insertada";

  
oci_close($conexion);

?>
Ejemplo 3. Inserción de datos en una columna CLOB
Código PHP:
<?php

// Antes de ejecutar, cree la table:
//     CREATE TABLE mitabla (miclave NUMBER, miclob CLOB);

$conexion oci_connect('scott''tiger''orcl');

$mi_clave 12343;  // clave arbitraria para este ejemplo;

$sql "INSERT INTO mitabla (miclave, miclob)
        VALUES (:miclave, EMPTY_CLOB())
        RETURNING miclob INTO :miclob"
;

$id_sentencia oci_parse($conexion$sql);
$clob oci_new_descriptor($conexionOCI_D_LOB);
oci_bind_by_name($id_sentencia":miclave"$mi_clave5);
oci_bind_by_name($id_sentencia":miclob"$clob, -1OCI_B_CLOB);
oci_execute($id_sentenciaOCI_DEFAULT);
$clob->save("Una cadena muy larga");

oci_commit($conexion);

// Recuperacion de datos CLOB

$consulta 'SELECT miclob FROM mitabla WHERE miclave = :miclave';

$id_sentencia oci_parse ($conexion$consulta);
oci_bind_by_name($id_sentencia":miclave"$mi_clave5);
oci_execute($id_sentenciaOCI_DEFAULT);

print 
'<table border="1">';
while (
$fila oci_fetch_array($id_sentenciaOCI_ASSOC)) {
  
$resultado $fila['MYCLOB']->load();
  print 
'<tr><td>'.$resultado.'</td></tr>';
}
print 
'</table>';

?>
Es posible acceder fácilmente a procedimientos almacenados en la misma forma en que lo haría desde la línea de comandos. Ejemplo 4. Uso de Procedimientos Almacenados
Código PHP:
<?php
// por webmaster arroba remoterealty punto com
$sth oci_parse($dbh"begin proc_nueva_dir( :id_direccion, '$nombre',
 '$apellido', '$companyia', '$dir1', '$dir2', '$ciudad', '$estado',
 '$cod_postal', '$pais', :cod_error );end;"
);

// Esto llama al procedimiento almacenado proc_nueva_dir, en donde
// :id_direccion es una variable de entrada/salida y :cod_error es una
// variable de salida.
// Entonces crea la vinculacion:

   
oci_bind_by_name($sth":id_direccion"$id_direccion10);
   
oci_bind_by_name($sth":cod_error"$cod_error10);
   
oci_execute($sth);

?>
A repasar --- los manuales---- ojala te sirva de algo..
  #3 (permalink)  
Antiguo 22/02/2011, 09:51
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Mi primer conexion con Oracle desde PHP [AYUDA]

gracias, otacon3784, pero capaz no me exprece bien, por ahora, estoy necesitando la conexion. ya esta funcion no la manejo oci_connect() y por lo que veo y leo en el manual, no logro configurar bien la conexion.

Con los datos que di

Cita:
(DESCRIPTION = ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.77)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL)))


y tengo el usuario y contraseña.
como configuro la conexion.
__________________
Mono programando!
twitter.com/eguimariano
  #4 (permalink)  
Antiguo 22/02/2011, 10:12
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Mi primer conexion con Oracle desde PHP [AYUDA]

Recuerda que para conectarte a ORACLE necesitas descomentar la libreria NECESARIA porque hay dos en el PHP.INI
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 22/02/2011, 10:14
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Mi primer conexion con Oracle desde PHP [AYUDA]

Cita:
Iniciado por jotaincubus Ver Mensaje
Recuerda que para conectarte a ORACLE necesitas descomentar la libreria NECESARIA porque hay dos en el PHP.INI
Gracias jotaincubus ya lo hice, y al cargar la pagina me aparece la pagina en blanco...
__________________
Mono programando!
twitter.com/eguimariano
  #6 (permalink)  
Antiguo 22/02/2011, 10:17
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Mi primer conexion con Oracle desde PHP [AYUDA]

¿Tienes los errores activados?

Pon
error_reporting(E_ALL);
Al principio de todo el codigo
  #7 (permalink)  
Antiguo 22/02/2011, 12:28
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Mi primer conexion con Oracle desde PHP [AYUDA]

Cita:
Iniciado por Ronruby Ver Mensaje
¿Tienes los errores activados?

Pon
error_reporting(E_ALL);
Al principio de todo el codigo
Listo, y no hace la diferencia. sigue los mismo.
__________________
Mono programando!
twitter.com/eguimariano
  #8 (permalink)  
Antiguo 22/02/2011, 12:37
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 66
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Mi primer conexion con Oracle desde PHP [AYUDA]

ayuda en ingles del manual oficial de php

no van los vínculos ...x|
------------------------
http://php.net/manual/es/function.oci-connect.php

[URL="http://php.net/manual/es/function.oci-connect.php"]http://php.net/manual/es/function.oci-connect.php[/URL]
  #9 (permalink)  
Antiguo 22/02/2011, 12:53
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Mi primer conexion con Oracle desde PHP [AYUDA]

Cita:
Iniciado por cosobo Ver Mensaje
ayuda en ingles del manual oficial de php

no van los vínculos ...x|
------------------------
http://php.net/manual/es/function.oci-connect.php

[URL="http://php.net/manual/es/function.oci-connect.php"]http://php.net/manual/es/function.oci-connect.php[/URL]
Por favor lean...
__________________
Mono programando!
twitter.com/eguimariano
  #10 (permalink)  
Antiguo 22/02/2011, 13:17
 
Fecha de Ingreso: diciembre-2009
Ubicación: La Paz - Bolivia
Mensajes: 67
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Mi primer conexion con Oracle desde PHP [AYUDA]

en una configuración que me paso un amigo que maneja oracle contiene lo siguiente:
Código PHP:
$db "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = XXXX)(PORT = 1520)))(CONNECT_DATA=(XXXXX=XXXXX)))"
recomendación revisar bien el host... si provaste el ip prueba con su alias .....
ahora bien en connect_data revisa bien como esta denominado en el equipo el servicio en la configuración que revise por ejemplo estaba de esta forma
CONNECT_DATA=(SID=LPT)

y por último revisa el puerto.. la configuración--- que me dijo era en el 1520.. puede ser eso....
ojala te sirva de algo la info...
  #11 (permalink)  
Antiguo 22/02/2011, 13:21
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Mi primer conexion con Oracle desde PHP [AYUDA]

Cita:
Iniciado por otacon3784 Ver Mensaje
en una configuración que me paso un amigo que maneja oracle contiene lo siguiente:
Código PHP:
$db "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = XXXX)(PORT = 1520)))(CONNECT_DATA=(XXXXX=XXXXX)))"
recomendación revisar bien el host... si provaste el ip prueba con su alias .....
ahora bien en connect_data revisa bien como esta denominado en el equipo el servicio en la configuración que revise por ejemplo estaba de esta forma
CONNECT_DATA=(SID=LPT)

y por último revisa el puerto.. la configuración--- que me dijo era en el 1520.. puede ser eso....
ojala te sirva de algo la info...
Gracias otacon era lo que necesitaba leer, me voy a una reunion de padres :S y cuando vuelvo lo pruebo!!!!1
__________________
Mono programando!
twitter.com/eguimariano
  #12 (permalink)  
Antiguo 23/02/2011, 10:46
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Mi primer conexion con Oracle desde PHP [AYUDA]

Bueno chicos, resolvi algo, en principio, no solo es descomentar el php.ini, tambien es instalar un cliente oracle y un guia entera, para que apache funcione con OCI....
lo que hice fue lo siguiente:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $bd='(DESCRIPTION = ADDRESS = (PROTOCOL = TCP)(HOST = 200.68.***.***)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL)))';
  4.  
  5. $conn=oci_connect('proovedor', '***********', '$bd');
  6.  
  7.  
  8. if (!$conn) {
  9.  
  10.     $e = oci_error();
  11.  
  12.     echo $e['message'];
  13.  
  14. }else{ echo "exito";}
  15. ?>

y me el oci_error es lo siguiente:
ORA-12154: TNS:could not resolve the connect identifier specified


Alguna idea?
__________________
Mono programando!
twitter.com/eguimariano
  #13 (permalink)  
Antiguo 23/02/2011, 12:29
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Mi primer conexion con Oracle desde PHP [AYUDA]

Listo estaba mal la cadena de conexion:

(DESCRIPTION = ADDRESS_LIST( ADDRESS = (PROTOCOL = TCP)(HOST = 200.68.***.***)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = ORCL)))
__________________
Mono programando!
twitter.com/eguimariano

Etiquetas: conexion, oracle, primer
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 16:40.