mysql prepared statement no repeat variables in execute stmt using
mysql prepared statement no repeat variables in execute stmt using
假设像这样
SET @var1 = 'val1';
SET @var2 = 'val2';
SET @query = "
INSERT INTO my_table
VALUES
(?,?),
(?,?),
-- ... imagine here a lot of values
(?,?)
";
PREPARE stmt FROM @query;
EXECUTE stmt USING @var1,@var2,@var1,@var2,@var1,@var2;
DEALLOCATE PREPARE stmt;
有没有办法只写一次 EXECUTE stmt USING
上的变量?
有些像这样:
EXECUTE stmt USING @var1,@var2;
在这种情况下得到错误
Incorrect arguments to execute statement
MySQL支持位置查询参数,不支持命名查询参数。
您在 SQL 查询中的参数占位符数量必须与您传递给 EXECUTE
的参数值数量相同。
如果您使用 Java、Ruby 或 Python 等应用程序语言准备和执行查询,而不是使用 PREPARE
和 EXECUTE
.
假设像这样
SET @var1 = 'val1';
SET @var2 = 'val2';
SET @query = "
INSERT INTO my_table
VALUES
(?,?),
(?,?),
-- ... imagine here a lot of values
(?,?)
";
PREPARE stmt FROM @query;
EXECUTE stmt USING @var1,@var2,@var1,@var2,@var1,@var2;
DEALLOCATE PREPARE stmt;
有没有办法只写一次 EXECUTE stmt USING
上的变量?
有些像这样:
EXECUTE stmt USING @var1,@var2;
在这种情况下得到错误
Incorrect arguments to execute statement
MySQL支持位置查询参数,不支持命名查询参数。
您在 SQL 查询中的参数占位符数量必须与您传递给 EXECUTE
的参数值数量相同。
如果您使用 Java、Ruby 或 Python 等应用程序语言准备和执行查询,而不是使用 PREPARE
和 EXECUTE
.