下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

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

作者:课课家教育     来源: http://www.kokojia.com点击数:1087发布时间: 2016-03-23 09:49:18

标签: c操作mysql数据库C语言

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

C语言操作mysql数据库函数说明_数据库_C语言_课课家

  这里归纳了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;

  }

赞(29)
踩(3)
分享到:
华为认证网络工程师 HCIE直播课视频教程