Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema con Procedimiento de Almacenado

Estas en el tema de Problema con Procedimiento de Almacenado en el foro de Mysql en Foros del Web. Saludos, la siguiente misiva es para tratar de aclarar un error que tengo en un Procedimiento de almacenado en Mysql.. El procedimiento es asi: CREATE ...
  #1 (permalink)  
Antiguo 10/05/2011, 07:15
 
Fecha de Ingreso: junio-2009
Mensajes: 93
Antigüedad: 14 años, 10 meses
Puntos: 0
Pregunta Problema con Procedimiento de Almacenado

Saludos, la siguiente misiva es para tratar de aclarar un error que tengo en un Procedimiento de almacenado en Mysql..

El procedimiento es asi:

CREATE PROCEDURE insert_persona (IN cedula int, IN nombres varchar(120),IN telefono varchar(15) )
begin

declare ced int(8);
declare nomb varchar(120);
declare telefono int(8);

SET ced=cedula;
SET nomb=nombres;
SET telefono=telefono;

INSERT INTO datos_personales VALUES ('ced','nomb','telefono');

end;


Y el llamado desde la aplicacion (PHP) así:

$insertar=mysql_query("CALL insert_persona('$cedula','$nombres','$telefono')") ;

Y el error es que en efecto no inserta los parámetros que les envio desde el formulario...

Qué estoy haciendo mal?...

Gracias por su ayuda...Saludos
  #2 (permalink)  
Antiguo 10/05/2011, 07:56
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Problema con Procedimiento de Almacenado

depura siempre tus consultas para que veas el problema

www.php.net/mysql_error


saludos
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 10/05/2011, 08:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con Procedimiento de Almacenado

No te inserta nada, porque el VALUE no contiene variables sino cadenas de texto...
Los apóstrofes los puedes usar en el PHP, pero en en cuenta que el cuerpo del SP es SQL, no PHP...
Código MySQL:
Ver original
  1. DELIMITER $$
  2. DROP PROCEDURE IF EXISTS insert_persona $$
  3.  
  4. CREATE PROCEDURE insert_persona
  5.     (IN cedulaINT,
  6.     IN nombres VARCHAR(120),
  7.     IN telefono VARCHAR(15) )
  8.  
  9. DECLARE nomb VARCHAR(120);
  10. DECLARE tel VARCHAR(15);
  11.  
  12. SET ced=cedula;
  13. SET nomb=nombres;
  14. SET tel=telefono;
  15.  
  16. INSERT INTO datos_personales VALUES (ced, nomb, tel);
  17.  
  18. END$$
  19. DELIMITER;

De hecho, ni siquiera tienes que declarar variables, ya que puedes usar los mismos parámetros, que en definitiva son variables locales:
Código MySQL:
Ver original
  1. DELIMITER $$
  2. DROP PROCEDURE IF EXISTS insert_persona $$
  3.  
  4. CREATE PROCEDURE insert_persona
  5.     (IN cedula INT,
  6.     IN nombres VARCHAR(120),
  7.     IN telefono VARCHAR(15) )
  8.      INSERT INTO datos_personales VALUES (cedula , nombres , telefono);
  9. END$$
  10. DELIMITER;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: php, procedimiento, almacenar
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 05:02.