USE MySQL C API


来源:《MySQL核心技术手册》

要编写C程序与MySQL进行交互,Microsoft Visual Studio 2012是很好的选择。

首先,创建Win32控制台应用程序,打开工程属性页面,点击在右上角的配置管理器,在弹出的配置管理器中新建x64活动解决方案平台并选择,随后点击左侧配置属性的VC++菜单,编辑右侧的包含目录,将MySQL的头文件包含进来,同时编辑库目录,将MySQL的静态库也包含进来:

包含目录

库目录

点击左侧链接器的输入,将MySQL目录的lib文件夹里的几个静态库文件添加到工程的附件依赖项当中

附加依赖项

此外还要将两个动态链接库文件libmysql.dll和libmysqld.dll复制粘贴到VS的该工程目录下,至此,工程配置完毕。

首先,使用cmd登录MySQL,创建下表作为C API编程测试使用。

easy_drinks

在程序中,首先需要将头文件mysql.h包含进来,由于工程配置中已经将MySQL目录下的include文件夹包含进了工程的包含目录,因此可以使用#include <mysql.h>,编译器会自动到MySQL目录下的include文件夹查找mysql.h该头文件。

测试查询功能的完整代码如下:

#include <cstdio>
#include <mysql.h>

int main(void)
{
	MYSQL mysql;
	MYSQL_RES *result;
	MYSQL_ROW row;
	if (mysql_init(&mysql) == NULL) {
		fprintf(stderr, "cannot initialize MySQL correctly!");
		exit(1);
	}
	if (!mysql_real_connect(&mysql, "localhost", "root", "gxc19670206", "my_db", 3306, NULL, 0)) {
		fprintf(stderr, "%d: %s \n", mysql_errno(&mysql), mysql_error(&mysql));
		exit(1);
	}
	if (mysql_query(&mysql, "SELECT drink_id, drink_name, main, amount, second FROM easy_drinks")) {
		fprintf(stderr, "%d: %s \n", mysql_errno(&mysql), mysql_error(&mysql));
		exit(1);
	}
	else {
		result = mysql_store_result(&mysql);
		while (row = mysql_fetch_row(result))
			printf("%s  |  %s  |  %s  |  %s  |  %s\n", row[0], row[1], row[2], row[3], row[4]);
		mysql_free_result(result);
	}
	mysql_close(&mysql);
	return 0;
}

现对其中关键API予以解释。

Leave a comment

邮箱地址不会被公开。 必填项已用*标注