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: 16 años, 10 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_sentencia, OCI_DEFAULT);
  if (!
$r) {
    
$e = oci_error($id_sentencia);
    echo 
htmlentities($e['message']);
    exit;
  }

  print 
'<table border="1">';
  while (
$fila = oci_fetch_array($id_sentencia, OCI_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($conexion, OCI_D_LOB);
oci_bind_by_name($id_sentencia, ":miclave", $mi_clave, 5);
oci_bind_by_name($id_sentencia, ":miclob", $clob, -1, OCI_B_CLOB);
oci_execute($id_sentencia, OCI_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_clave, 5);
oci_execute($id_sentencia, OCI_DEFAULT);

print 
'<table border="1">';
while (
$fila = oci_fetch_array($id_sentencia, OCI_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_direccion, 10);
   
oci_bind_by_name($sth, ":cod_error", $cod_error, 10);
   
oci_execute($sth);

?>
A repasar --- los manuales---- ojala te sirva de algo..