Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Ejecutar SP desde php (https://www.clubdelphi.com/foros/showthread.php?t=28548)

micayael 22-12-2005 20:44:40

Ejecutar SP desde php
 
Hola gente.

TEngo en firebird un SP que hace un insert a una tabla y desde php tengo un script que llama a ese SP con sus respectivos parametros de entrada.

Si lo hago asi:
$conexion->ejecutar("INSERT INTO LIBROS_T VALUES('$lib_nombre', '$lib_editorial', '$lib_autor', 1, '$lib_resumen')");

perfectamente funciona y el registro es insertado, pero si lo hago asi:
$conexion->ejecutar("SELECT LIB_ID FROM SP_LIB_A ('$lib_nombre', '$lib_editorial', '$lib_autor', 1, '$lib_resumen')");

aunque me responde que lo inserto porque existe un resource, cuando miro la base de datos no inserta nada.

Alguien sabe que le pasa a esto???

maeyanes 22-12-2005 21:27:50

Ya trataste llamando al procedimiento como tal?

Código PHP:

$conexion->ejecutar("EXECUTE PROCEDURE SP_LIB_A
  ('
$lib_nombre', '$lib_editorial', '$lib_autor', 1, '$lib_resumen')"); 



Saludos...

micayael 23-12-2005 15:53:49

Lo que pasa es que el procedimiento devuelve valores y no logro hacer que funcione con returning values.

maeyanes 23-12-2005 16:19:13

El método ejecutar que estas usando, es programado por ti?

Como está escrito internamente? Que funciones de PHP usa?



Saludos...

micayael 23-12-2005 18:44:09

Utiliza un @ibase_query($this->bdd_conexion_id, $sSQL)

solo la funcion ibase_query();

maeyanes 23-12-2005 20:28:24

Hice una búsqueda en Google y encontré esto:

Código PHP:

$sql "SELECT * FROM SP_MY_PROCEDURE()";

$pstm ibase_prepare($connection$sql);
$rs ibase_execute($pstm);

while (
$row ibase_fetch_row($rs));
  
// ...
}

ibase_free_result($pstm); 

Nota que se está usando la función ibase_execute();


Tal vez con eso resuelvas tu problema...



Saludos...

micayael 26-12-2005 11:46:54

Ok gracias maeyanes.

Está solucionado.

Lo que pasaba es que usando un SELECT * FROM PROCEDURE lo tengo que usar con una funcion que hice para hacer consultas. Usando ejecutar() seria para ejecutar sentencias directas como por ejemplo un INSERT.

Gracias


La franja horaria es GMT +2. Ahora son las 11:50:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi