C++ 连接数据库的入口和获取列数、数据

前端之家收集整理的这篇文章主要介绍了C++ 连接数据库的入口和获取列数、数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

这里不具体放出完整的程序,分享两个核心函数

函数是编译器自己的库所没有的,需要自己下载MysqL.h库或者本地有数据库,可以去bin找到,放进去。

     前提,我自己的测试数据库是WampServe自带MysqL,曾经试过连接新浪云的,发现很坑,它里面的要放代码进去它空间才能连,不能在本机连,连接的输入形参全是它规定的常量!


第一个是连接数据库的:

      行内带有详细注释,皆本人的见解,有理解错的,求帮指出。

      再作简单介绍,之所有带有int返回类型,是因为一旦连接数据库失败就return 0 结束程序。

形参所输入的分别是 数据库地址、端口,本机的端口一般是3306、数据库名、用户名、密码,调用就能用了。

DateBase::init( * host, port, * database, * user, * ->MysqL_res = NULL;函数可以在任意函数内使用,为了避免在它之前,有缓存读入导致出错,统一用init前,res为NULL my_bool opt_reconnect=;功能 MysqL_init(&(->conn));函数,传入conn,把缓存存进去 MysqL_options(&(->conn),MysqL_SET_CHARSET_NAME,( *) 函数,MysqL_options设置gbk字符码,,utf8会导致从库中取数据显示出乱码, 函数的功能很大,第二个参数就是选择功能,这里是选择设置字符码,设置字符码还可以用query命令,只不过它更麻烦。 MysqL_options(&(->conn),MysqL_OPT_RECONNECT,( *)& MysqL异常断开连接,看第二个参数,reconne,就是重连。可自动重连,怎样测掉了呢? 函数,连了之后,如果发现有丢失,就会联系它 (!MysqL_real_connect(&(->conn),host,user,password,database,port,NULL,CLIENT_MULTI_STATEMENTS| 函数,核心之一,可选参数很多,这里最后的是,允许进行其他操作,连接失败输出所有信息 cout< 自动提交,1为启用自动提交 MysqL_autocommit(&(->conn), }

下面这个是在连接数据库成功后:

MysqL里面有数据表,否则会出错!

      用来获取数据库中表的列名,并且在依次、有顺序地输出列名后输出所有数据的函数

      里面一样注释齐全,还不明白的请留言!有错的请留言告诉我咯。谢谢!

      请读者认清里面的函数,下作简介:

 MysqL_query(,) 这条是执行命令的,成功返回0,第一个参数是连库缓存变量,第二个是命令字符串;

MysqL_store_result(),获取结果集,形参是连库缓存变量,返回值是MysqL res 类型的结果集缓存变量;MysqL_fetch_fields(),获取表中的列名字,它返回的是MysqL filed类型的数组,用一次就能获取所有列名,用一循环即可输出所有!MysqL_num_fields(),获取字段的数目,就是有多少列;MysqL_fetch_row(),获取一行的数据,这是一行哦,但是,获取一行后会自动后移,所以用while最好!返回值是MysqL row类型的变量
DateBase::show_db(){显示一遍数据 MysqL_FIELD * check();调用chec函数,检查好用户表的存在与否 MysqL_res=MysqL_list_tables(&(this->conn),"user_1"); (MysqL_query(&(->conn),)!=){用户表的所有数据 * 表示所有 cout<<获取用户表信息出错! ->MysqL_res=MysqL_store_result(&(-> files=MysqL_fetch_fields(->MysqL_res); (i=;i<MysqL_num_fields(->MysqL_res);i++){MysqL_num_fields返回字段的数目 cout<);cout<输出,setw函数是对齐用到的 cout<< (MysqL_row=MysqL_fetch_row(->MysqL_res)){获取一行的数据 (j=;j<MysqL_num_fields(->MysqL_res);j++ (MysqL_row[j]==NULL){内容为空,程序崩溃 cout<< cout<);cout<<MysqL_row[j]; cout<< MysqL_free_result(MysqL_res); }

猜你在找的C#相关文章