Linux下使用C语言访问MySQL.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux下使用C语言访问MySQL

Linux下使用C语言访问MySQL本学期刚学完数据库,上课的时候使用的是SQL Server数据库,但是本人的操作系统是linux系统,无法使用SQL,故闲来折腾一下mysql,惊觉mysql和SQL Server还是有很大的区别。以前使用JDBC可以很轻松的访问各种数据库,今天闲的太无聊折腾一下用C语言访问mysql。废话少说,步骤如下:1在linux下使用C语言访问mysql数据库不需要手动加载类似JDBC的驱动,但是要包括一个头文件mysql/mysql.h,在ubuntu15.04中,该头文件的路径是:/usr/include/mysql/mysql.h,阅读一下该头文件还是很受用的。2仅仅包含mysql.h头文件还不行,必须要添加sql的动态库,codeblock操作如下:setttings/compliler/global compiler settings/linker settings,在Link libraries框中添加动态库/usr/lib/x86_64-linux-gnu/libmysqlclient.a,在右边添加这些参数(-lmysqlclient-lz-lm-ldl),然后在左边添加/usr/lib/x86_64-linux-gnu/libpthread.a动态库,然后在右边添加参数-lpthread。3现在可以编写第一个C语言访问mysql数据库的代码了,如下:首先查看一下我已经建立的数据库OrderDB里面的表【所有用到的表是我提前建立的,可以不适用命令行的形式,可以通过mysql workbench查看】:选择一个表Customer,查看其结构:查看其具体的数据内容:代码分析如下:#includestdlib.h#includestdio.h#includestring.h#includemysql/mysql.hint main(){MYSQL mysql;//mysql 连接,定义在mysql.h中,是一个结构体MYSQL_RES *res;//查询结果集合,类似于ResultSetMYSQL_ROW row;//代表查询结果集合提取的一行char *query;//表示查询语句int t,r;//两个状态mysql_init(mysql);//初始化数据库资源,这是需要访问数据库必须要做的第一步//第二步是使用函数mysql_real_connect建立MYSQL结构与数据库的连接,该函数带有8个参数(MYSQL指针,服务器名,数据库用户名,数据库密码,数据库名,端口号,unix_socket,clientflag),注意其返回值。if(!mysql_real_connect(mysql,localhost,root,0213,OrderDB,3306,NULL,0)){//使用函数mysql_error可以返回访问数据库的最进一次发生的错误,该函数带有一个MYSQL*类型参数 printf(对不起,连接数据库失败!错误原因:%s,mysql_error(mysql));}else{ printf(建立连接成功!);query=set character set utf8; //使用mysql_real_query函数执行查询,该函数带有三个参数,(MYSQL结构指针,查询语句,查询语句的长度),注意其返回值。t=mysql_real_query(mysql,query,(unsigned long)strlen(query)); if(t){ printf(编码设置失败!);}//查询Customer表中信息 query=select * from Customer; t=mysql_real_query(mysql,query,(unsigned long)strlen(query)); if(t){ printf(表查询失败!错误原因:%s,mysql_error(mysql)); }else{ printf(查询成功:%s,query); }//执行查询之后就可以使用mysql_store_result函数获取结果集了,其中res是MYSQL_RES类型的参数。 res=mysql_store_result(mysql);//获取结果集 puts();//MYSQL_ROW类型参数的实质是char**类型,mysql_fetch_row(MYSQL_RES)可以提取结果集合中的一行数据 while(row=mysql_fetch_row(res)){ //输出res结果集上的字段值 printf(顾客编号为:%s ,row[0])

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档