请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 54|回复: 3

请教 【 数据库Mysql类】 模块问题

[复制链接]

23

主题

29

回帖

180

积分

注册会员

积分
180
QQ
发表于 6 天前 | 显示全部楼层 |阅读模式
悬赏1金钱未解决
请教 【 数据库Mysql类】 模块【开始提交事务()】对应的完成提交之后结束的命令是什么?


还有 【置自动提交事务()】这个命令开启之后触发和关闭的条件是什么呢?

58

主题

112

回帖

715

积分

版主

积分
715
发表于 6 天前 | 显示全部楼层
  1. 事务和预处理语句的结合
  2. 通过预处理语句和事务的结合,可以确保多条 SQL 语句要么全部成功,要么全部失败。

  3. 示例:事务与预处理语句结合
  4. mysql_autocommit(conn, 0);  // 关闭自动提交

  5. MYSQL_STMT *stmt = mysql_stmt_init(conn);
  6. const char *query = "INSERT INTO test (id, name) VALUES (?, ?)";
  7. mysql_stmt_prepare(stmt, query, strlen(query));

  8. MYSQL_BIND bind[2];
  9. int id = 1;
  10. char name[20] = "Alice";

  11. // 绑定参数
  12. memset(bind, 0, sizeof(bind));
  13. bind[0].buffer_type = MYSQL_TYPE_LONG;
  14. bind[0].buffer = (char *)&id;

  15. bind[1].buffer_type = MYSQL_TYPE_STRING;
  16. bind[1].buffer = name;
  17. bind[1].buffer_length = sizeof(name);

  18. mysql_stmt_bind_param(stmt, bind);

  19. if (mysql_stmt_execute(stmt)) {
  20.     mysql_rollback(conn);  // 执行失败,回滚
  21. } else {
  22.     mysql_commit(conn);    // 执行成功,提交事务
  23. }

  24. mysql_stmt_close(stmt);
  25. mysql_autocommit(conn, 1);  // 恢复自动提交
复制代码
这是网上找的资料,预处理部分API好像没封装,意思是使用预处理语句执行的sql操作,才需要用提交事务方法,而执行SQL语句方法是立即生效的。

23

主题

29

回帖

180

积分

注册会员

积分
180
QQ
 楼主| 发表于 4 天前 | 显示全部楼层
hxznhf 发表于 2025-1-7 22:35
这是网上找的资料,预处理部分API好像没封装,意思是使用预处理语句执行的sql操作,才需要用提交事务方法, ...

感谢恢复 ,但是这个资料似乎是【Mysql数据库】的对应资料,而我使用的是【Mysql数据库类】的库,我使用的库中相关方法没有英文名称  找不到对应的命令

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

23

主题

29

回帖

180

积分

注册会员

积分
180
QQ
 楼主| 发表于 4 天前 | 显示全部楼层
好像和  https://bbs.xcgui.com/forum.php?mod=viewthread&tid=468  这个帖子里引起错误的原因一样吧 ,按这里网友回复的意思应该是机制问题 ,是不能直接将有可能返回空地址的参数传给A2W_的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|炫语言 | 炫彩界面库 | 用户所需, 正是我所做! ( 鄂ICP备2023014763号-1 )

GMT+8, 2025-1-13 12:17 , Processed in 0.072110 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表