MySQL C 连接器/mysql_autocommit 函数

标签 mysql c transactions autocommit

我在使用 C 语言的 mysql 连接器时遇到了一些问题。

我正在将一些(工作的)node.js 脚本转换为独立的 C 应用程序,其中一部分我需要关闭自动提交,对数据库进行两次更新并提交。

但是,每次我调用mysql_autocommit(mysql, 0);它失败 - 返回非零。我知道我的连接良好,因为我刚刚完成了一个查询并且正在对该查询的结果进行操作。

有趣的是 MySQL 日志是空的...这不是很有帮助。

有什么想法可以找出问题所在或解决问题吗? Node.js 脚本也关闭了自动提交和[显然]工作。

提前致谢

最佳答案

我在我的 C 应用程序中按以下方式使用此函数:

int main( int argc, char **argv ) {
  my_bool reconnect = 1;

  ...

  dbconnect();  // my function (-> conn)

  mysql_options( conn, MYSQL_OPT_RECONNECT, &reconnect );

  ...

  exit (0);
}

然后这段代码关闭自动提交:

mysql_autocommit( conn, 0 );

然后切换回来:

mysql_commit( conn );
mysql_autocommit( conn, 1 );    

关于MySQL C 连接器/mysql_autocommit 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29035613/

相关文章:

mysql - Sequelize upsert 总是在发布请求时创建/插入一个新条目,而不是更新匹配用户名的数据。 MySQL数据库

c - 结构中的大小

c - 使用命名管道在 C 中实现聊天

django - F() 表达式和原子事务可以相互替换吗?

Spring Hibernate 事务在没有刷新的情况下不提交

mysql - 在日期比较mysql中包括空值

mysql - 无法使用数据库中的 SOLR DataImportHandler 获取任何行

php - 将依赖于 PHP 的 SQL 代码转换为完整的 SQL

您可以使用 Arduino Uno(c 代码)同时多次运行一个函数吗?

c# - 首先将 READ_COMMITTED_SNAPSHOT 与 EF 代码结合使用 5