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

Procedure en consulta mysql que usa variables

Estas en el tema de Procedure en consulta mysql que usa variables en el foro de Mysql en Foros del Web. Estimados tengo una consulta, estoy tratando de hacer un procedure que realiza ingreso de registros en tablas, y quiero pasarle el nombre de la tabla, ...
  #1 (permalink)  
Antiguo 13/03/2012, 15:10
 
Fecha de Ingreso: junio-2011
Ubicación: Argentina
Mensajes: 32
Antigüedad: 12 años, 10 meses
Puntos: 2
Pregunta Procedure en consulta mysql que usa variables

Estimados tengo una consulta, estoy tratando de hacer un procedure que realiza ingreso de registros en tablas, y quiero pasarle el nombre de la tabla, la columna y los valores por parametros.
Asi cree mi procedure:
Código MySQL:
Ver original
  1. delimiter//
  2. CREATE PROCEDURE insertar (IN tabla_nombre VARCHAR(30),IN columnas_nombre VARCHAR(30),IN valores_enunciar VARCHAR(30))
  3. INSERT INTO tabla_nombre (columnas_nombre) VALUES (valores_enunciar);
  4. //delimiter

Si ejecuto el procedure directamente desde Naticate, dando los parametros: usuario_s, u_identidad, prueba; Navicate da este mensaje:
Procedure execution failed
1054 - Unknown column 'usuarios' in 'field list'
Esta bien la sintaxis, como debería pasarle los parametros.
También intente desde php, ejecutar el procedure y sale error, este es el codigo

Código PHP:
Ver original
  1. $tabla= "usuario_s";
  2. $campo= "u_identidad";
  3. $valores= "prueba";
  4.  
  5. $conexion= new conexion();
  6. $query="CALL insertar(".$tabla.",".$columnas.",".$valores.");";
  7. $conexion-> consulta($query);
Cual es mi error?
  #2 (permalink)  
Antiguo 14/03/2012, 06:15
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Procedure en consulta mysql que usa variables

1054 - Unknown column 'usuarios' in 'field list' no existe la columna usuarios en la tabla.
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 14/03/2012, 08:21
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, 5 meses
Puntos: 2658
Respuesta: Procedure en consulta mysql que usa variables

MySQL no admite el uso de parámetros para crear una sentencia dinámicamente, como lo pretendes. MySQL no es SQL Server, ni Oracle. El PL/SQL no está estandarizado, por lo que cada uno hace las cosas a su manera.
Para poder hacr eso, necesitas, dentro del SP, usar sentencias preparadas (ver manual de referencia de MySQL).
El error que te da es porque estás ingresando mal los parámetros en la llamada.
Las cadenas de texto deben quedar entre apóstrofos ('), los números, sin apóstrofos, sin separadores de miles y con el punto en lugar de la coma decimal; los falores lógicos se pueden pasar como enteros 1 ó 0, o ponerse como TRUE y FALSE, pero sin apóstrofos.
__________________
¿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: parametros, procedure, tabla, variables
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 19:51.