c++与mysql数据库连接,c语言如何和mysql数据库连接

  c++与mysql数据库连接,c语言如何和mysql数据库连接

  http://www.mysql.com/doc/en/C.html

  [转载自http://homepage.qdcatv.com.cn/antonio/mysql/mysql.htm]

  执行查询有以下步骤。首先执行查询,然后保存结果,

  你得到的是一个子集。这里有一个小例子:

  #包括

  #包括

  #包含“mysql.h”

  MYSQL mysql

  MYSQL _ RES * res

  MYSQL_ROW行;

  无效exiterr(int exitcode)

  {

  fprintf( stderr, %s\n ,MySQL _ error(MySQL));

  退出(exit code);

  }

  int main()

  {

  uint I=0;

  如果(!(mysql_connect( mysql,主机,用户名,密码))

  exit err(1);

  if (mysql_select_db( mysql, payroll ))

  exit err(2);

  if (mysql_query( mysql, SELECT name,rate FROM emp_master ))

  exit err(3);

  如果(!(res=mysql_store_result( mysql)))

  exit err(4);

  while((row=MySQL _ fetch _ row(RES))){

  for(I=0;I MySQL _ num _ fields(RES);我)

  printf(%s\n ,行[i])。

  }

  MySQL _ free _ result(RES);

  MySQL _ close(MySQL);

  }

  mysql_query函数会将查询发送到服务器,如果查询成功,则调用mysql_store_result。

  该函数将分配一个MYSQL_RES结构,并从服务器检索一个结果集。你可以用

  Mysql_fetch_row函数来查看数据。这样做,你会得到一个MYSQL_ROW指针号。

  根据中的一行。MYSQL_ROW指针是一个简单的字符串数组。的所有数据类型都转换为

  将字符串发送给客户端。

  mysql_num_fields函数将告诉您返回的列数。可以继续调用mysql_fetch_row

  直到它返回一个空指针来获取查询中的每一行。

  注意,在这个例子中,我们没有检查具有空指针的列。如果不使用包含非空列的表,那么

  您必须检查特殊行的列是否为空。

  一旦使用完结果集,就必须释放它。这是通过mysql_free_result实现的。

  最后调用mysql_close关闭你和数据库的连接。

  查看结果集

  不用调用mysql_fetch_row就可以知道返回的结果集中有多少行。这是由

  int MySQL _ num _ rows(MySQL _ RES * result)。

  切换到下一个mysql_fetch_row调用返回的行,您可以使用

  void MySQL _ data _ seek(MySQL _ RES * RES,uintoffset)更改为任意行。

  获取更多信息

  您可以使用这些额外的函数来找出关于查询的更多信息,并从服务器获取它。

  这些信息。

  如果执行更新、插入或删除查询,可以使用

  Int mysql_affected_rows,找出你影响了多少行数据。

  如果您的数据库中有二进制数据,了解数据的长度会很有用。无符号的

  int * MySQL _ fetch _ lengths(MySQL _ RES * MySQL)将返回一个列,指示结果集中的每一列。

  长度为的整数数组。

  当插入带有AUTO_INCREMENT列的表时,可以使用

  Int mysql_insert_ID(MYSQL *mysql)找出生成行的ID。

  ======================

  我成功连接了!

  # include /include/MySQL/MySQL . h /*是绝对路径*/

  #包含stdio.h

  int main(int argc,char *argv[])

  {

  char *user=root ,*pwd=mysql ,* dbname= mysql

  MYSQL mysql

  MYSQL _ RES * mysql _ ret

  MYSQL _ ROW mysql _ row

  无符号长整型num _ rows

  int ret

  MySQL _ init(MySQL);

  if(mysql_real_connect( mysql,NULL,user,pwd,dbname,0,NULL,0))

  {

  printf(连接成功!\ n’);

  ret=mysql_query( mysql, select * from user );

  如果(!ret)

  {

  printf(查询成功!\ n’);

  MySQL _ ret=MySQL _ store _ result(MySQL);

  if(mysql_ret!=空)

  {

  printf(存储结果成功!\ n’);

  num _ rows=MySQL _ num _ rows(MySQL _ ret);

  if(num_rows!=0)

  {

  printf(%d\n ,num _ rows);

  while(MySQL _ row=MySQL _ fetch _ row(MySQL _ ret))

  {

  printf( % s \ t % s \ t % s \ t % s \ t % s \ t % s \ t % s \ t % s \ n ,mysql_row[0],mysql_row[1],mysql_row[2],mysql_row[3],mysql_row[4],MySQL _ row[5]);

  }

  }

  其他

  {

  printf(mysql_num_rows失败!\ n’);

  退出(-1);

  }

  MySQL _ free _ result(MySQL _ ret);

  退出(0);

  }

  其他

  {

  printf(存储结果失败!\ n’);

  退出(-1);

  }

  }

  其他

  {

  printf(查询失败!\ n’);

  退出(-1);

  }

  }

  其他

  {

  printf(连接失败\ n’);

  退出(-1);

  }

  }

  如果你包含了正确的头文件而在连接的时候,告诉你没有符号连接

  你应该连接你需要的库

  我的/lib/mysql/libmysqlclient.so下面

  gcc-L/lib/MySQL-lmysql客户端测试。c进行编译

  RedHat_shu@hotmail.com

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些
  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些,关系型数据库与非关系型数据库简介
  • 关于redis数据库入门详细介绍图片,redis数据库的使用,关于Redis数据库入门详细介绍
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 什么是分库分表,为什么要进行分库分表-,分库分表的区别,数据库分库分表是什么,什么情况下需要用分库分表
  • vb中adodb连接数据库,
  • treeview控件绑定数据,wpf treeview数据绑定,详解TreeView绑定数据库
  • sql的多表查询,数据库如何实现多表查询
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库,SQLServer2019 数据库的基本使用之图形化界面操作的实现
  • sql数据库定时备份怎么弄,mysql 定期备份
  • sql数据库定时备份怎么弄,mysql 定期备份,MySQL 数据库定时备份的几种方式(全面)
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar,SQL中varchar和nvarchar的基本介绍及其区别
  • 留言与评论(共有 条评论)
       
    验证码: