Foros del Web » Programando para Internet » PHP »

Ejecutar insert function PgSQL desde php

Estas en el tema de Ejecutar insert function PgSQL desde php en el foro de PHP en Foros del Web. Hola, Tengo la duda de cómo ejecutar una funcion pgsql que inserte datos. Tengo lo siguiente: Código: CREATE OR REPLACE FUNCTION Inserta(integer, integer) RETURNS integer ...
  #1 (permalink)  
Antiguo 18/11/2009, 13:28
 
Fecha de Ingreso: agosto-2004
Mensajes: 131
Antigüedad: 19 años, 8 meses
Puntos: 2
Ejecutar insert function PgSQL desde php

Hola,

Tengo la duda de cómo ejecutar una funcion pgsql que inserte datos. Tengo lo siguiente:

Código:
CREATE OR REPLACE FUNCTION Inserta(integer, integer) RETURNS integer AS $$
BEGIN
	INSERT INTO tabla_prueba(id_1, id_2) VALUES ($1, $2);
        RETURN 1;
END
$$ LANGUAGE plpgsql VOLATILE;
Pero no sé cómo ejecutarlo en php con PDO

Código PHP:
$sql "SELECT LogDescarga(".$this->id.",".$us_id.");"// ACA ES DONDE TENGO LA DUDA, ESTA BIEN???
$oBD = new BaseDatos;   // referencia al objeto que maneja la BD
$conn $oBD->AbrirConexion(xDBTypexHostxUserDBxPwdDBxDB); // crea el objeto de conexión PDO (esto funciona OK)
$result $conn->Exec($sql);
if ( 
$result!==FALSE ) {
echo 
"todo bien";
} else {
die(
"<b>ERROR!</b> No ha sido posible insertar los datos");

La otra pregunta es cómo reconocer si el insert se llevó a cabo correctamente.

Muchas gracias por su ayuda.

saludos
  #2 (permalink)  
Antiguo 18/11/2009, 13:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ejecutar insert function PgSQL desde php

no se mucho pero...

- la función debería ser Inserta en lugar de LogDescarga o no??
- me imagino que el SELECT devuelve lo que RETURN devuelva???
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/11/2009, 13:39
 
Fecha de Ingreso: agosto-2004
Mensajes: 131
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: Ejecutar insert function PgSQL desde php

1.- chuta, sip, eso es un error pero solo en la transcripcion al foro (o sea que en mi código lo tengo bien)
2.- Claro, SELECT toma lo que devuelva el RETURN, entonces mi pregunta va a si existe algo que me devuelva el estado de la inserción, algo así como el IF FOUND THEN, pero para insert o updates

Ahora bien, logré hacerlo ejecutándolo como cualquier consulta preparada, o sea:

Código PHP:
$sql "SELECT * FROM Inserta(?,?);";
... 
y luego creando el objeto PDO, preparandolo y finalmente ejecutando el "statement", eso andubo OK y pude insertar sin problemas. El tema es ¿Esa es la forma correcta de hacerlo?

Muchas gracias :)
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 09:28.