千家信息网

从举例开启mysql编程入门之路

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,下文内容主要给大家带来从举例开启mysql编程入门之路,所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。先了解几个概念:M
千家信息网最后更新 2026年11月02日从举例开启mysql编程入门之路

下文内容主要给大家带来从举例开启mysql编程入门之路,所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。

先了解几个概念:
MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过
set autocommit=0 禁止自动提交
set autocommit=1 开启自动提交
mysql中INNODB引擎才支持事务处理,默认是自动提交的;
另外一种常用的MYISAM引擎是不支持事务的,本身就没有事务的概念

从代码中来看:
#include
#include
#include
#include
#include
#include
#include

//oracle的事务:事务起始标志 DML语言 (oracle默认事务似是打开的)
//MYSQL默认是自动提交的 (每执行一个sql语言都给你自动提交)
/*
MySQL set autocommit = 0或1分别什么啊,哪个是自动提交啊
要熟练使用mysql的帮助文档,在里面查找autocommit,就会有相应的注释,比我在这里直接给你说要深刻得多。

autocoomit是事务,根据mysql的文档如果等于1是立即提交。但在transction中只有遇到commit或rollback才提交。希望对你有用。

*/
#define BEGIN_TRAN "START TRANSACTION"
#define SET_TRAN "SET AUTOCOMMIT=0"
#define UNSET_TRAN "SET AUTOCOMMIT=1"
#define COMMIT_TRAN "COMMIT"
#define ROLLBACK_TRAN "ROLLBACK"

int mysql_BeginTran(MYSQL *mysql)
{
int ret = 0;

//--执行事务开始SQLret = mysql_query(mysql, BEGIN_TRAN);if (ret != 0){    printf("func mysql_query() err: %d\n", ret);    return ret;}//--设置事务手动提交ret = mysql_query(mysql, SET_TRAN);if (ret != 0){    printf("func mysql_query() err: %d\n", ret);    return ret;}return ret;

}

int mysql_Rollback(MYSQL *mysql)
{
int ret = 0;

//--事务回滚操作ret = mysql_query(mysql, ROLLBACK_TRAN);if (ret != 0){    printf("func mysql_query() err: %d\n", ret);    return ret;}//--恢复事务自动提交标志ret = mysql_query(mysql, UNSET_TRAN);if (ret != 0){    printf("func mysql_query() err: %d\n", ret);    return ret;}return ret;

}

int mysql_Commit(MYSQL *mysql)
{
int ret = 0;

//--执行事务提交SQLret = mysql_query(mysql, COMMIT_TRAN);if (ret != 0){    printf("func mysql_query() err: %d\n", ret);    return ret;}//--恢复自动提交设置ret = mysql_query(mysql, UNSET_TRAN);if (ret != 0){    printf("func mysql_query() err: %d\n", ret);    return ret;}return ret;

}

// drop table test_table
// 建表 create table test_table(col1 int, col2 varchar(10), col3 varchar(10));

#define sql01 "INSERT INTO test_table(col1,col2,col3) VALUES(10, '10', '1')"
#define sql02 "INSERT INTO test_table(col1,col2,col3) VALUES(20, '20', '2')"
#define sql03 "INSERT INTO test_table(col1,col2,col3) VALUES(30, '30', '3')"
#define sql04 "INSERT INTO test_table(col1,col2,col3) VALUES(40, '40', '4')"

int main()
{
int ret = NULL;

MYSQL       *mysql;MYSQL_RES   *res;MYSQL_ROW   row;char        *query;mysql = mysql_init(NULL);mysql =mysql_real_connect(mysql, "localhost", "root", "123456", "mydb2", 0, NULL, 0 );if (mysql == NULL){    ret = mysql_errno(mysql);    printf("func mysql_real_connect() err\n");    return ret;}else{    printf(" ok......\n");}ret = mysql_BeginTran(mysql); //修改事务的属性,变成不自动 提交 if (ret != 0){    printf("mysql_BeginTran() err:%d\n", ret);    return ret;}ret = mysql_query(mysql, sql01);if (ret != 0){    printf("mysql_query() err:%d\n", ret);    return ret;}ret = mysql_query(mysql, sql02);if (ret != 0){    printf("mysql_query() err:%d\n", ret);    return ret;}ret = mysql_Commit(mysql); //提交事务,恢复事务的默认属性if (ret != 0){    printf("mysql_Commit() err:%d\n", ret);    return ret;}ret = mysql_BeginTran(mysql);if (ret != 0){    printf("mysql_BeginTran() err:%d\n", ret);    return ret;}ret = mysql_query(mysql, sql03);if (ret != 0){    printf("mysql_query() err:%d\n", ret);    return ret;}ret = mysql_query(mysql, sql04);if (ret != 0){    printf("mysql_query() err:%d\n", ret);    return ret;}ret = mysql_Rollback(mysql);if (ret != 0){    printf("mysql_Rollback() err:%d\n", ret);    return ret;}mysql_close(mysql);

}
结果显然sql1 sql2 commit 生效
sql3 sql4 rollback回滚无效

对于以上关于从举例开启mysql编程入门之路,如果大家还有更多需要了解的可以持续关注我们的行业推新,如需获取专业解答,可在官网联系售前售后的,希望该文章可给大家带来一定的知识更新。

事务 之路 编程 专业 属性 引擎 文档 标志 概念 知识 语言 帮助 支持 不同 熟练 下文 也就是 书籍 人员 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云之行互联网科技 苏州找大状互联网科技有限公司 中国互联网科技工作委员会毛军 互联网核心科技是什么 工业互联网科技新基建 互联网科技开发公司 腾讯科技 互联网女皇 互联网科技博客 农村开互联网科技讲堂 成都互联网科技公司100强 花神(南京)互联网科技有限公司 互联网金融科技展 东莞新华互联网科技学校 互联网科技大赛获奖感言 艺电能源互联网科技有限公司招聘 福仕德教育科技互联网 银川新华互联网科技学校原画 数字互联网科技有限公司 互联网科技大佬云集 互联网企业和网络科技有限公司 山东特亿宝互联网科技有限公司 科技互联网龙头 互联网金融监管科技数据 互联网是不是新科技 苏州铭阳互联网科技有限公司 互联网在线教育科技创业 互联网科技年终奖 深圳互联网科技园地址 广州全民伙伴互联网科技有限公司 武汉亿视互联网科技有限公司
0