mysql更新语句动态传参
时间: 2023-04-03 17:05:30 浏览: 90
可以使用预处理语句来动态传参,具体实现可以参考以下代码:
```
// 假设需要更新的表名为table,需要更新的字段为field,更新的值为value,更新的条件为condition
// 使用预处理语句
char *sql = "UPDATE table SET field = ? WHERE condition = ?";
MYSQL_STMT *stmt = mysql_stmt_init(conn);
mysql_stmt_prepare(stmt, sql, strlen(sql));
// 绑定参数
MYSQL_BIND bind[2];
memset(bind, 0, sizeof(bind));
int value = 10;
int condition = 1;
bind[0].buffer_type = MYSQL_TYPE_LONG;
bind[0].buffer = &value;
bind[1].buffer_type = MYSQL_TYPE_LONG;
bind[1].buffer = &condition;
mysql_stmt_bind_param(stmt, bind);
// 执行更新语句
mysql_stmt_execute(stmt);
mysql_stmt_close(stmt);
```
以上代码中,使用预处理语句可以避免 SQL 注入的风险,同时也可以提高 SQL 语句的执行效率。在绑定参数时,需要指定参数的类型和对应的变量地址,然后通过 mysql_stmt_bind_param 函数将参数绑定到预处理语句中。最后执行 mysql_stmt_execute 函数即可执行更新语句。