MySQL:使用prepare命令命名的参数?

问题描述 投票:9回答:1

在MySql中是否可以将prepare命令与命名参数一起使用,例如PHP中的PDO:

这是我的示例:

 SET @s = 'SELECT * FROM MY_TABLE WHERE my_column_1 = ? AND my_column_2 = ? ';
 PREPARE stmt2 FROM @s;
 SET @a = 54;
 SET @b = 89';
 EXECUTE stmt2 USING @a, @b;

是否可以做这样的事情:

 SET @s = 'SELECT * FROM MY_TABLE WHERE my_column_1 = :value1 AND my_column_2 = :value2 ';
mysql parameters prepared-statement
1个回答
0
投票

我建议查看与此有关的文档。https://dev.mysql.com/doc/refman/8.0/en/prepare.html

该文档未引用除?之外的其他任何绑定变量的方法,但确实提到可以使用用户定义的变量。]​​>

SET @s = 'SELECT * FROM MY_TABLE WHERE my_column_1 = @a AND my_column_2 = @b ';
PREPARE stmt2 FROM @s;
SET @a = 54;
SET @b = 89';
EXECUTE stmt2;

产生相同的输出,并且仅在执行语句时才评估变量,只是缺少将变量绑定到查询的明确性。

© www.soinside.com 2019 - 2024. All rights reserved.