windows下如何使用C语言连接MySQL

2009-04-10  |  15:50分类:MySQL  |  

logo_mysql_sun_a对于刚刚接触MySQL的用户,如果想用C语言连接MySQL,往往会是一件很麻烦的事情。这里就整理过程做一个详细的说明,以便参考。

概述:

MySQL为C语言提供了连接数据库的API,如连接数据库:

MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"your_prog_name");
if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
{
    fprintf(stderr, "Failed to connect to database: Error: %s\n",
          mysql_error(&mysql));
}

要想正常使用这些API,你需要做一下两件事情:

  • 包含这些API的声明文件(mysql.h)
  • 让你编译器找到这些API的可执行程序。(dll库)

详细步骤:

  1. 在你的C语言中加入如下声明:
    #include "windows.h"
    #include "mysql.h"
    int main(){
    ......
    }

    那编译器如何才能找到mysql.h文件呢?需要做如下设置:

    a) VC6.0中,在你的Project(项目),选择Tools菜单下的Options选项,在Directories的标签页中右边的“Show directories for:”下拉列表中选中“Includefiles”,然后在中间列表框中添加你本地安装MySQL的include目录路径。 (5.*版本的路径应该是:C:\\Program Files\\MySQL\\MySQL Server 5.0\\include)

    b)至此,你的编译器就知道mysql的API接口有哪些函数,以及函数的原型是怎样的(mysql.h中)。你的C语言程序应该已经能够通过Compile(编译)这一步了

  2. 到上一步你的程序能够编译通过了,但是也只是能编译而已,想生成可执行程序这些还不够。还需要告诉编译器这些API函数的可执行文件在哪儿(libmysql.dll)。
    VC6.0中,在你的Project(项目)中

    a) 选择Tools菜单下的Options选项,在Directories的标签页中右边的“Show directories for:”下拉列表中选中“Library files”,然后添加你本地安装MySQL的Lib目录路径。 (5.*版本的路径应该是:C:\\Program Files\\MySQL\\MySQL Server 5.0\\lib\\debug 或者C:\\Program Files\\MySQL\\MySQL Server 5.0\\lib\\opt);

    b) 选择“Project settings->Link:Object/library modules”,添加“libmysql.lib”     [把建议将“libmySQL.lib、libmySQL.dll”拷到你所建的工程的目录下]

    c) 在你的程序代码中加入:
    #include "mysql.h"
    #include "windows.h"
    #pragma comment(lib,"libmySQL.lib")

  3. 这样就完成了所有的工作,你的源代码大概是这个样子:
    #include "windows.h"
    #include "mysql.h"
    #pragma comment(lib,"libmySQL.lib")
    int main(){
    	MYSQL mysql;
    	mysql_init(&mysql);
    	mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"your_prog_name");
    	if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0)){
    		fprintf(stderr, "Failed to connect to database: Error: %s\n",mysql_error(&mysql));
    	}
    }
  4. 如果你使用的Dev C++情况可能会复杂些,可以参考:
    http://16hot.blog.isyi.com/post/1/144
    http://topic.csdn.net/u/20080524/01/2a26ab3f-caee-4695-9141-d75b28995a2d.html
    另外,还有一个连接MySQL的C++类也非常好用:MySQL++logo-small

【参考文章】

  1. http://16hot.blog.isyi.com/post/1/144
  2. http://tech.ddvip.com/2007-07/118529907130315_2.html
  3. http://www.tenouk.com/ModuleW.html
喜欢本文,那就收藏到:

发表您的评论