在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 ';
我建议查看与此有关的文档。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;
产生相同的输出,并且仅在执行语句时才评估变量,只是缺少将变量绑定到查询的明确性。