Mysql C语言API编程入门讲解之详细篇
副问题[/!--empirenews.page--]
软件开拓中我们常常要会见数据库,存取数据,之前已经有网友提出让鸡啄米讲讲数据库编程的常识,本文就具体讲授怎样行使Mysql的C说话API举办数据库编程。 API,全称Application Programming Interfaces,即应用措施编程接口,我们可以挪用这些接口,执行API函数提供的成果。 Mysql C说话API就是用C说话编写的Mysql编程接口,行使这些接口函数可以实现对Mysql数据库的查询等操纵。 Mysql的安装 要举办Mysql编程起主要在充当Mysql处事器的电脑和本机上都安装Mysql,处事器上的Mysql用来毗连查询,本机上的Mysql作为开拓之用,虽然本机也可以分身处事器和开拓之用。下载Mysql可以到http://www.mysql.com/downloads/mysql/。鸡啄米安装的是“Windows (x86, 64-bit), MSI Installer”版本。 在Mysql安装进程中,安装选项必然要选上Development Components下的Client C API library(shared),这样才会将Mysql API的头文件和动态库安装到电脑中。 安装完成后,我们编程要用的就是include目次下的头文件和lib目次下的库文件。 Mysql API数据布局 Mysql API顶用到了许多布局体等数据范例,下面就简朴说说常用的几个数据布局的寄义,至于它们的界说鸡啄米就不贴了,各人可以到Mysql提供的mysql.h头文件中查察。 MYSQL 毗连数据库前,必需先建设MYSQL变量,此变量在许多Mysql API函数会用到。它包括了一些毗连信息等数据。 MYSQL_RES MYSQL_RES布局体中包括了查询功效集,也就是从数据库中查询到的数据。可以行使mysql_store_result或mysql_use_result函数得到。 MYSQL_ROW MYSQL ROW的界说如下: typedef char **MYSQL_ROW; 可见,它现实上是char **范例,指向一个字符串数组。可以通过mysql_fetch_row函数得到。 MYSQL_FIELD MYSQL_FIELD中包括了字段名、字段范例和巨细等信息。可以一再挪用mysql_fetch_field函数得到全部字段的信息。 Mysql C API编程步调 1、起首我们要包括mysql的头文件,并链接mysql动态库。即添加以下语句:
2、建设MYSQL变量。如: MYSQL mysql; 3、初始化MYSQL变量。 mysql_init(&mysql); 4、挪用mysql_real_connect函数毗连Mysql数据库。mysql_real_connect函数的原型如下:
参数声名:mysql--前面界说的MYSQL变量;host--MYSQL处事器的地点;user--登任命户名;passwd--登录暗码;db--要毗连的数据库;port--MYSQL处事器的TCP处事端口;unix_socket--unix毗连方法,为NULL时暗示不行使socket或管道机制;clientflag--Mysql运举动ODBC数据库的标志,一样平常取0。毗连失败时该函数返回0。 5、挪用mysql_real_query函数举办数据库查询。mysql_real_query函数的原型如下: int STDCALL mysql_real_query(MYSQL *mysql, const char *q, unsigned long length); 参数声名:mysql--前面界说的MYSQL变量;q--SQL查询语句;length--查询语句的长度。 查询乐成则该函数返回0。 6、通过挪用mysql_store_result或mysql_use_result函数返回的MYSQL_RES变量获取查询功效数据。 两个函数的原型别离为: MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql); MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql); 这两个函数别离代表了获取查询功效的两种方法。第一种,挪用mysql_store_result函数将从Mysql处事器查询的全部数据都存储到客户端,然后读取;第二种,挪用mysql_use_result初始化检索,以便于后头一行一行的读取功效集,而它自己并没有从处事器读取任何数据,这种方法较之第一种速率更快且所需内存更少,但它会绑定处事器,阻止其他线程更新任何表,并且必需一再执行mysql_fetch_row读取数据,直至返回NULL,不然未读取的行会在下一次查询时作为功效的一部门返回,故常常我们行使mysql_store_result。 7、挪用mysql_fetch_row函数读取功效集数据。 上述两种方法最后都是一再挪用mysql_fetch_row函数读取数据。mysql_fetch_row函数的原型如下: MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result); 参数result就是mysql_store_result或mysql_use_result的返回值。 该函数返回MYSQL_ROW型的变量,即字符串数组,假设为row,则row[i]为第i个字段的值。当到功效集尾部时,此函数返回NULL。 8、功效集用完后,挪用mysql_free_result函数开释功效集,以防内存泄漏。mysql_free_result函数的原型如下: void STDCALL mysql_free_result(MYSQL_RES *result); 9、不再查询Mysql数据库时,挪用mysql_close函数封锁数据库毗连。mysql_close函数的原型为: void STDCALL mysql_close(MYSQL *sock); Mysql C API编程实例 这里给各人一个简朴的Mysql API编程实例。行使VS2010编写。会见的数据库为安装Mysql后默认建设的名称为“mysql”的数据库,查询其“user”表的数据,步调如下: 1、建设一个Win32 Console Application(Win32节制台措施)的空工程(建设空工程必要在领导的Application Settings一步中,勾选Empty project),名称就取为mysql。 2、在Solution Explorer窗口的工程名“mysql”上点右键,选择“Properties”,弹出工程的属性页,然后在左侧子窗口中,选择Configuration Properties->VC++ Directories,右侧子窗口中会表现一些配置项列表,然后在Include Directories项中添加Mysql的Include目次,在Library Directories项中添加Mysql的lib目次。 3、新建一个cpp文件,取名mysql.cpp。 4、在mysql.cpp文件中包括mysql头文件并链接mysql动态库。
这里要留意,由于mysql用到了收集毗连的接口函数,以是必要在前面包括WinSock2.h文件。 同时本例中行使了输出流cout,以是还要包括输入输出流头文件:
5、建设main函数,并修改函数体如下:
6、将mysql安装目次中的libmysql.dll动态库文件拷贝到工程的当前目次,运行措施。 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |