我有一个MySQLvariable执行MySQL查询存在变量
@query = CONCAT('INSERT INTO history VALUES (',1,',',50,',UTC_TIMESTAMP()');
我想执行中存在的变量插入语句。
我有一个MySQLvariable执行MySQL查询存在变量
@query = CONCAT('INSERT INTO history VALUES (',1,',',50,',UTC_TIMESTAMP()');
我想执行中存在的变量插入语句。
必须使用PREPARE
首先准备语句,然后使用EXECUTE
在这里看到:http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html
喜欢的东西:
SET @query = CONCAT("INSERT INTO history VALUES (",1,",",50,",UTC_TIMESTAMP()");
PREPARE stmt1 FROM @query;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
我得到了这个错误#1064 - 你的SQL语法错误;检查与您的MySQL服务器版本对应的手册,在第2行'EXECUTE stmt_name'附近使用正确的语法。 – Avinash 2012-04-12 11:46:48
试试我的编辑,应该没问题。 – mattytommo 2012-04-12 11:51:52
谢谢@mattytommo。 – Avinash 2012-04-12 11:59:31
Set @query = CONCAT("INSERT INTO history VALUES (",1,",",50,",UTC_TIMESTAMP()");
然后
PREPARE stmt_name FROM @query
,并在最后
EXECUTE stmt_name
删除CONCAT(),它没有这样做,除了因为它试图连接具有别的字符串产生错误什么。
它实际上是连接5个元素,它不会是任何错误=>你的答案是坏 - >不回答已经回答的问题 - 看看'新'部分,并显示你的技能:) – Toumash 2015-07-02 21:26:43
不合逻辑的答案。 – 2018-03-04 01:52:18
尝试准备好声明 – 2012-04-12 11:42:38
请给我例 – Avinash 2012-04-12 11:45:10
看到我的答案,我认为它会工作 – 2012-04-12 11:53:44