Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/08/2015, 13:21
Avatar de Kursakez
Kursakez
 
Fecha de Ingreso: agosto-2015
Mensajes: 19
Antigüedad: 8 años, 8 meses
Puntos: 1
¿Cómo llamar a una función de SQL en PHP?

Hola muy buenas tardes!

He de decir que soy un habitual de este foro aunque no me había registrado hasta el día de hoy, seguramente porque encontré todo lo que me hizo falta hasta entonces

Sin embargo hoy me he topado con un problema que no supe solucionar :/

Estoy haciendo una llamada a mi base de datos en Oracle SQL developper desde un documento PHP en Aptana.

La función que llamo es la siguiente:

Código:
CREATE OR REPLACE FUNCTION generaCodProd
  (
  w_genero        IN productos.genero%TYPE,
  w_color         IN productos.color%TYPE,
  w_tipo_producto IN productos.tipo_producto%TYPE
  )
  RETURN VARCHAR2
  IS
  w_codigo productos.codigo%TYPE;
  BEGIN
  w_codigo:=CONCAT(SUBSTR(w_genero, 1, 1),CONCAT(SUBSTR(w_color, 1, 1),CONCAT(SUBSTR(w_tipo_producto, 1, 3),CODIGO.NEXTVAL)));
  RETURN (w_codigo);
  END;
  /
Donde CODIGO.NEXTVAL es una secuencia en SQL.

Bien, ahora la otra parte, la de PHP:

Código PHP:
function insertarProducto($conexion,$temporada,$tipo_producto,$genero,$precio,$nombre_producto,$color,$descripcion,$imagen){
        try{
            
$stmt=$conexion->prepare("CALL GENERACODPROD(:genero,:color,:tipo_producto)");
            
$stmt->bindParam(":genero",$genero);
            
$stmt->bindParam(":color",$color);
            
$stmt->bindParam(":tipo_producto",$tipo_producto);
            
$stmt->execute();
            return 
"ok";    
        }catch(
PDOException $e){
            echo 
$e->getMessage();
        }
    } 
Bueno pues al llamar a esta función, el navegador me muestra este mensaje:

Código:
SQLSTATE[HY000]: General error: 6576 OCIStmtExecute: ORA-06576: not a valid function or procedure name (ext\pdo_oci\oci_statement.c:148)
Yo he sospechado que sería del nombre de la función, pero en ambos códigos es el mismo... mmmmmmm... me pueden ayudar?