mysql库函数说明_C语言操作mysql数据库函数说明

如何使用C语言进行MySQL数据库的连接,对于一些初学者来说,这是困难的,今天我们给大家介绍了一些C语言操作mysql函数的相关介绍。

这里归纳了CAPI可使用的函数。

与MySQL交互时,应用程序应使用该一般性原则:

1.通过调用mysql_library_init(),初始化MySQL库。库可以是mysqlclientC客户端库,或mysqld嵌入式服务器库,具体情况取决于应用程序是否与“-libmysqlclient”或“-libmysqld”标志链接。

2.通过调用mysql_init()初始化连接处理程序,并通过调用mysql_real_connect()连接到服务器。

3.发出SQL语句并处理其结果。(在下面的讨论中,详细介绍了使用它的方法)。

4.通过调用mysql_close(),关闭与MySQL服务器的连接。

5.通过调用mysql_library_end(),结束MySQL库的使用。

介绍常用到的MYSQL相关的C变量类型。这些类型在我们后面定义变量的时候会用到

1、MYSQL

要连接MYSQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接

示例:

MYSQLmysql;#创建MYSQL实例

mysql_init(&mysql);#初始化开始进行连接

2、MYSQL_RES

这个结构代表返回行的一个查询的(SELECT,SHOW,DESCRIBE,EXPLAIN)的结果。返回的数据称为“数据集”。从数据库读取数据,最后就是从MYSQL_RES中读取数据。

PS:类似于java里面的ResultSet变量一样,将结果集存入到此变量中再从它里面去读数据。

3、MYSQL_ROW

这是一个行数据的类型安全(type-safe)的表示。当前它实现为一个计数字节的字符串数组。行通过调用mysql_fetch_row()获得

4、MYSQL_FIELD

你可以通过重复调用mysql_fetch_field()对每一列获得MYSQL_FIELD结构。这个结构包含字段信息,例如字段名、类型和大小。

PS:此变量定义的是列的相关属性问题!

示例一:实现遍历查询select*fromtable-name操作

#include"Windows.h"

#include"mysql.h"

#pragmacomment(lib,"libmySQL.lib")

intmain()

{

MYSQLmysql;//mysql连接

MYSQL_RES*res;//这个结构代表返回行的一个查询结果集

MYSQL_ROWrow;//一个行数据的类型安全(type-safe)的表示

char*query;//查询语句

intt,r;

mysql_init(&mysql);

if(!mysql_real_connect(&mysql,"localhost","root","123","test",3306,NULL,0))

{

printf("Errorconnectingtodatabase:%s",mysql_error(&mysql));

}else

printf("Connected...");

query="SETCHARACTERSETutf8";//设置编码

t=mysql_real_query(&mysql,query,(unsignedint)strlen(query));

if(t)

{

printf("编码设置失败");

}

query="select*froma";

t=mysql_real_query(&mysql,query,(unsignedint)strlen(query));

if(t)

{

printf("执行查询时出现异常:%s",mysql_error(&mysql));

}else

printf("[%s]构建成功",query);

res=mysql_store_result(&mysql);

while(row=mysql_fetch_row(res))

{

/*

for(t=0;t

{

printf("%s""",row[t]);

}

*/

printf("%s",row[1]);表示查询的第几个字段的!也还可以遍历全部字段信息

printf("\\n");

}

mysql_free_result(res);

mysql_close(&mysql);

return0;

}

示例二:执行插入、更新、删除操作

#include"windows.h"

#include"mysql.h"

#pragmacomment(lib,"libmySQL.lib")

intmain()

{

MYSQLmysql;//mysql连接

MYSQL_RES*res;//这个结构代表返回行的一个查询结果集

MYSQL_ROWrow;//一个行数据的类型安全(type-safe)的表示

char*query;//查询语句

intt,r;

mysql_init(&mysql);

if(!mysql_real_connect(&mysql,"localhost","root","123","test",3306,NULL,0))

{

printf("Errorconnectingtodatabase:%s",mysql_error(&mysql));

}else

printf("Connected...");

query="SETCHARACTERSETutf8";//设置编码

t=mysql_real_query(&mysql,query,(unsignedint)strlen(query));

if(t)

{

printf("编码设置失败");

}

query="insertintoa(name,age)values('w',9)";

t=mysql_real_query(&mysql,query,(unsignedint)strlen(query));

if(t)

{

printf("执行查询时出现异常:%s",mysql_error(&mysql));

}else

printf("[%s]构建成功",query);

mysql_close(&mysql);

return0;

}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值