来源:《MySQL核心技术手册》
要编写C程序与MySQL进行交互,Microsoft Visual Studio 2012是很好的选择。
首先,创建Win32控制台应用程序,打开工程属性页面,点击在右上角的配置管理器,在弹出的配置管理器中新建x64活动解决方案平台并选择,随后点击左侧配置属性的VC++菜单,编辑右侧的包含目录,将MySQL的头文件包含进来,同时编辑库目录,将MySQL的静态库也包含进来:
点击左侧链接器的输入,将MySQL目录的lib文件夹里的几个静态库文件添加到工程的附件依赖项当中
此外还要将两个动态链接库文件libmysql.dll和libmysqld.dll复制粘贴到VS的该工程目录下,至此,工程配置完毕。
首先,使用cmd登录MySQL,创建下表作为C API编程测试使用。
在程序中,首先需要将头文件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予以解释。