sql - 使用函数语法的准备语句

标签 sql mysql prepared-statement

当我尝试运行此命令时遇到错误:

mysql> prepare stmt1 from "UPDATE test.users SET password = password('?') WHERE usrid = ?";
mysql> prepare stmt1 from "UPDATE test.users SET password = password(?) WHERE usrid = ?";

如何制作一个准备好的语句,其中函数将我的变量作为参数?

最佳答案

您需要在准备好的声明周围添加一些双引号:

mysql> PREPARE stmt_name FROM "SELECT name FROM Country WHERE code = ?";
Query OK, 0 rows affected (0.09 sec)
Statement prepared

mysql> SET @test_parm = "FIN";
Query OK, 0 rows affected (0.00 sec)

mysql> EXECUTE stmt_name USING @test_parm;
+---------+
| name    |
+---------+
| Finland |
+---------+
1 row in set (0.03 sec)

mysql> DEALLOCATE PREPARE stmt_name;
Query OK, 0 rows affected (0.00 sec)

关于sql - 使用函数语法的准备语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1515079/

相关文章:

python - 使用python从数据库中重复选择最新数据

php - 在php中从多个表中搜索

mysql准备语句在执行stmt时没有重复变量使用

mysql - 将游标变量获取到局部变量中

mysql - 多查询Mysql

php - 我必须在 PHP 中使用结果之前或之后关闭准备好的语句吗

sql - SQL View 和 WITH 子句的区别

mysql - 查询 LIKE 字符串的 MySQL 字段

sql - 数据聚合 - 每日 SQL 脚本与数据仓库

php - 使用 php 发送变量的最安全方式