- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据实验二答案
实验二:使用C语言操作MySQL数据库
李建中 高宏 邹兆年
1. 实验目的
在熟练运用MySQL基本命令和SQL语言的基础上,学会使用C语言访问MySQL数据库,并进行查询。
2. 实验环境
Windows XP操作系统、MySQL 5.1.41关系数据库管理系统、MinGW编译器或Microsoft Visual C++编译器。
3. 实验步骤
3.1 建立工程
3.1.1 准备工作
了解编程相关的资源文件。MySQL安装路径下的include文件夹存放C语言编译相关的头文件(例如重要的mysql.h),lib文件夹存放相关的静态库(例如重要的opt/libmysql.lib)
3.1.2 准备工作
使用C语言编程环境(Code::Blocks或Visual C++)建立空白工程。在该工程的编译和链接配置中,首先添加引用路径
%MySQL安装路径%\include\
其中“%MySQL安装路径%”为MySQL安装路径,在实验中心的计算机上为C:\Program Files\MySQL\include\
然后,添加静态库路径
%MySQL安装路径%\lib\opt\
路径的具体添加方法因编程环境而异,请听从老师指导。
3.2 连接、断开MySQL服务器
在程序中必须加入#define __LCC__,以避免在Windows操作系统下进行编译时产生的错误。然后,在程序中加入#include mysql.h,让编译器能够找到所有MySQL Client的函数定义。
随后,使用mysql_init函数准备连接,mysql_init函数的声明为
MYSQL *mysql_init(MYSQL *mysql);
其参数和返回值均为类型为MYSQL的结构体的指针。MYSQL结构体是连接MySQL服务器的句柄,每一个句柄代表程序与MySQL 服务器唯一的连接,所有insert,select,delete等操作都需要MySQL句柄作为参数以识别不同用户、数据库以及程序。若mysql_init操作成功,则返回刚刚初始化的句柄;否则,返回NULL。
下面是一个简单的例子。
#ifndef __LCC__
#define __LCC__
#endif
#include stdio.h
#include mysql.h
int main(int argc, char **argv)
{
MYSQL mysql_conn; /* Connection handle */
if (mysql_init(mysql_conn) != NULL)
{
printf(“Init succeeds!\n”);
}
else
{
printf(“Init fails!\n”);
}
return 0;
}
编译并运行该程序,若句柄初始化成功,则打印”Init succeeds!”;否则,打印”Init fails!”。
在句柄被初始化后,就可以使用mysql_real_connect函数或者mysql_connect函数连接MySQL 服务器了,这两个函数的声明如下:
MYSQL *mysql_real_connect(
MYSQL *mysql, const char *host, const char *user,
const char *passwd, const char *db, unsigned int port,
const char *socket, unsigned long client_flag);
其中,第1个参数是MySQL句柄,第2至第4个参数分別为host name、user name及password,第5个参数是待使用的数据库的名字,你也可把第5个参数设为NULL,之后使用mysql_select_db函数来选择数据库,第6个参数是MySQL 服务器的连接池,通常把它设为MYSQL_PORT,第7个参数是MySQL 服务器及client之间传输的渠道(socket或named pipe),但MySQL 服务器会根据host name建立另一渠道,除非你有真的需要,否则你需在第7个参数填上NULL。最后是client_flag,包括压缩协议、查询协议、加密协议等。
与MySQL服务器的连接成功后,使用mysql_close函数断开连接,其函数声明为:
int mysql_close(MYSQL*);
下面是一个简单的例子:
#ifndef __LCC__
#define __LCC__
#endif
#include stdio.h
#include mysql.h
int main(int argc, char **argv) {
MYSQL mysql_conn /* Connecti
文档评论(0)