Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/02/2011, 09:45
otacon3784
 
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..