数据实验二+答案.docVIP

  • 55
  • 0
  • 约7.77千字
  • 约 8页
  • 2017-05-02 发布于河南
  • 举报
数据实验二答案

实验二:使用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)

1亿VIP精品文档

相关文档