MySQL:使用 PREPARE 命令命名参数?

发布于 2024-10-31 14:41:42 字数 431 浏览 0 评论 0原文

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 ';

Is it possible in MySQL to use the PREPARE command with named parameters such as PDO in PHP:

Here is my example:

 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;

Is it possible to do something like that :

 SET @s = 'SELECT * FROM MY_TABLE WHERE my_column_1 = :value1 AND my_column_2 = :value2 ';

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你的呼吸 2024-11-07 14:41:42

我建议查看有关此的文档。
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;

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

I suggest looking at the documentation regarding this.
https://dev.mysql.com/doc/refman/8.0/en/prepare.html

The documentation makes no references to any other way to bind variables other than the ?s, but it does mention that you can use user defined variables.

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;

Produces the same output and the variables are only evaluated at execution of the statement, it just lacks the explicitness of binding the variable to the query.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文