2012-04-12 20 views
6

Tengo un MySQLvariableejecutar la consulta mysql presente en la variable

@query = CONCAT('INSERT INTO history VALUES (',1,',',50,',UTC_TIMESTAMP()'); 

quiero ejecutar la instrucción de inserción presente en la variable.

+0

try preparado declaración –

+0

Por favor, dame el ejemplo – Avinash

+0

ver mi respuesta, creo que va a funcionar –

Respuesta

12

primero debe preparar la declaración utilizando PREPARE y luego usar EXECUTE

Ver aquí: http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html

Algo así como:

SET @query = CONCAT("INSERT INTO history VALUES (",1,",",50,",UTC_TIMESTAMP()"); 

PREPARE stmt1 FROM @query; 
EXECUTE stmt1; 
DEALLOCATE PREPARE stmt1; 
+0

Recibí este error # 1064 - Tiene un error en la sintaxis SQL; revise el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta para usar cerca de 'EXECUTE stmt_name' en la línea 2 – Avinash

+0

Pruebe mi edición, debería estar bien. – mattytommo

+0

Gracias @mattytommo. – Avinash

2
Set @query = CONCAT("INSERT INTO history VALUES (",1,",",50,",UTC_TIMESTAMP()"); 

y luego

PREPARE stmt_name FROM @query 

y al fin

EXECUTE stmt_name 
-2

quitar el CONCAT(), que no está haciendo nada, excepto generará un error, ya que está tratando de concatenar una cadena con nada más.

+0

En realidad está concatenando 5 elementos, no habrá ningún error => tu respuesta es mala -> no respondas las preguntas ya respondidas - mira la sección 'nueva' y muestra tus habilidades :) – Toumash

+0

respuesta ilógica. –

Cuestiones relacionadas