Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/01/2012, 07:33
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: Problemas al crear procedimientos almacenados

phpMyadmin requiere que se indique cuál es el caracter o expresión usado como delimitador de sentencias. Eso se hace poniendolo en un textbox, abajo de la pantalla de ejecución de SQL.
En este caso, no se debe usar el comando DELIMITER, ya que lo incorpora el PHP por su cuenta.
Detalle importante: Jamás uses el caracter de escape o las barras, o ningún símbolo de uso en SQL para indicar el delimitador. Generan errores inesperados en el código.
Lo más práctico es usar "$$", como se muestra en el manual de reerencia de MySQL.

Código MySQL:
Ver original
  1. CREATE FUNCTION get_idc ( ida int(11) )
  2.     RETURNS int(11)
  3.     RETURN SELECT id_creador FROM anuncio WHERE id_anuncio = ida$$

Código MySQL:
Ver original
  1. CREATE PROCEDURE get_id_creador
  2.   ( OUT `idc` int(11),  IN `ida` int(11) )
  3.      SELECT `id_creador`  FROM `anuncio` WHERE `id_anuncio` = `ida` INTO `idc`;
  4.   END$$
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)