Foros del Web » Programando para Internet » PHP »

Llamar SP desde PHP

Estas en el tema de Llamar SP desde PHP en el foro de PHP en Foros del Web. Hola amigos tengo un problemita a ver si me pueden ayudar tengo un SP en oracle pl-sql con parametros de entrada y salida , lo ...
  #1 (permalink)  
Antiguo 19/03/2013, 07:58
 
Fecha de Ingreso: febrero-2013
Mensajes: 21
Antigüedad: 11 años, 9 meses
Puntos: 0
Llamar SP desde PHP

Hola amigos tengo un problemita a ver si me pueden ayudar
tengo un SP en oracle pl-sql con parametros de entrada y salida ,
lo que hace esque no se pueda ingresar mas 3 solicitudes a un usuario dependiendo de un estado
pero no se como llamarlo desde php
no he trabajado con php y son nuevo en este tema
les agradeceria una ayudita
Saludos..

SP

Código SQL:
Ver original
  1. CREATE OR REPLACE PROCEDURE Caratulas_abiertas(
  2. id_solicitud$   IN NUMBER,
  3. id_nomina$      IN NUMBER,
  4. fecha_creacion$ IN DATE,
  5. fecha_apertura$ IN DATE,
  6. usuario$        IN VARCHAR,
  7. dine_apertura$  IN NUMBER,
  8. conductor$      IN VARCHAR,
  9. empresa$        IN VARCHAR,
  10. respuesta       OUT INTEGER)
  11. AS
  12.   contador$ INT;
  13.  BEGIN
  14.     SELECT COUNT(estado) INTO contador$
  15.     FROM ti_caratulas
  16.     WHERE  conductor = conductor$ AND estado = 'Abierta';
  17.  
  18.         IF contador$ < 3 THEN
  19.               INSERT INTO TI_CARATULAS (id_solicitud,id_nomina,fecha_creacion,
  20.                                         fecha_apertura,usuario,dine_apertura,
  21.                                         conductor,empresa,estado)
  22.                                  VALUES(id_solicitud$,id_nomina$,fecha_creacion$,
  23.                                         fecha_apertura$,usuario$,dine_apertura$,
  24.                                          conductor$,empresa$,'Abierta');
  25.  
  26.                COMMIT;
  27.  
  28.                respuesta := 1;
  29.  
  30.         ELSE
  31.  
  32.                respuesta := 2;
  33.         END IF;
  34.  
  35. END Caratulas_abiertas;


en php tengo la pagina donde recibe los parametros de otra pagina con POST
pero no se como armar el SP y llamada

Código PHP:
Ver original
  1. <?php include("php_conexion.php");
  2.  
  3. ('".$_POST["n_solicitud"]."',
  4.      '".$_POST['n_nomina']."',
  5.             TO_DATE('".$_POST["f_rendicion"]."','dd-mm-yyyy'),
  6.             TO_DATE('".$_POST["f_apertura"]."','dd-mm-yyyy'),
  7.     '".$_POST["usuario"]."',
  8.         '".$_POST["p_apertura"]."',
  9.         '".$_POST['conductor']."',
  10.         '".$_POST["empresa"]."','Abierta');
  11.  
  12. ?>
  #2 (permalink)  
Antiguo 19/03/2013, 08:17
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años
Puntos: 16
Respuesta: Llamar SP desde PHP

el SP debes llamarlo según la sintaxis que dipone ORACLE para eso, lo cual es independiente de PHP. Ahora, por el lado de php tu duda la veo en que puede que no sepas ejecutar una consulta a la base de datos o en su defecto establecer una conexión, para ese caso te sugiero leas un tutorial básico de conexión PHP/ORACLE para lograr la conexión y ejecutar consultas, luego de eso deberas montar el string de consulta concatenando los datos donde corresponda, para este efecto, php utiliza el punto (.).

Espero ser de ayuda.

Saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #3 (permalink)  
Antiguo 19/03/2013, 08:43
 
Fecha de Ingreso: febrero-2013
Mensajes: 21
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Llamar SP desde PHP

Cita:
Iniciado por El_Metallick Ver Mensaje
el SP debes llamarlo según la sintaxis que dipone ORACLE para eso, lo cual es independiente de PHP. Ahora, por el lado de php tu duda la veo en que puede que no sepas ejecutar una consulta a la base de datos o en su defecto establecer una conexión, para ese caso te sugiero leas un tutorial básico de conexión PHP/ORACLE para lograr la conexión y ejecutar consultas, luego de eso deberas montar el string de consulta concatenando los datos donde corresponda, para este efecto, php utiliza el punto (.).

Espero ser de ayuda.

Saludos
Gracias por comentar , la conexiones a oracle la tengo y funcionan he probado varias consultas en oracle desde php y funcionan , como mencione lo que quiero hacer es lo que hago en un insert normal pero hacerlo en SP(que ya tengo) y llamarlo desde PHP
Saludos y gracias por comentar

esta es la consulta normal que tengo :

Código PHP:
Ver original
  1. <?php include("php_conexion.php");
  2.        
  3. $estado = "Abierta";
  4. echo $strSQL = "INSERT INTO TI_CARATULAS (id_solicitud, id_nomina, fecha_creacion,fecha_apertura, usuario,
  5.            dine_apertura, estado, conductor, empresa)                  
  6.             values ('".$_POST["n_solicitud"]."',       
  7.             '".$_POST["n_nomina"]."',
  8.             TO_DATE('".$_POST["f_rendicion"]."','dd-mm-yyyy'),
  9.             TO_DATE('".$_POST["f_apertura"]."','dd-mm-yyyy'),          
  10.             '".$_POST["usuario"]."',
  11.             '".$_POST["p_apertura"]."',  
  12.             '".$estado."',             
  13.             '".$_POST['conductor']."',
  14.             '".$_POST["empresa"]."')";
  15.     $objParse = oci_parse($objConnect, $strSQL);
  16.     $objExecute = oci_execute($objParse, OCI_DEFAULT);
  17.    
  18.     if($objExecute)
  19.     {
  20.         oci_commit($objConnect); //*** Commit Transaction ***//
  21.         echo "<br><br><br><div align='center' style='color:#FFF; font-family:Arial, Helvetica, sans-serif' ><b>Caratula Creada exitosamente.</b></div>";
  22.         $tabla = true;
  23.     }
  24.     else
  25.     {
  26.         oci_rollback($objConnect); //*** RollBack Transaction ***//
  27.         $e = oci_error($objParse);
  28.         echo "<br><br><br><div align='center' style='color:#FFF; font-family:Arial, Helvetica, sans-serif' ><b>Error al Crear Caratula: [".$e['message']."]</b></div>";
  29.         $tabla = false;
  30.     }
  31.     oci_close($objConnect);
  32.    
  33.     if($tabla)
  34.     {      
  35.        
  36.     }
  37.    
  38.  
  39.     //header("Location:solicitudes.php?modificado=ok");
  40. ?>
  #4 (permalink)  
Antiguo 19/03/2013, 09:16
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años
Puntos: 16
Respuesta: Llamar SP desde PHP

el llamado sería por ejemplo algo de este tipo:

Código PHP:
Ver original
  1. $query = "BEGIN SPName('$in1', '$in2',..., :output_var); end;";

más detalles puedes encontrarlos en por ejemplo:
http://www.exzilla.net/docs/php-oci8/php-plsql.php

y lee esto: http://ar2.php.net/manual/en/functio...nd-by-name.php

saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!

Etiquetas: select, sql
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 21:23.