MySQL中内置与C语言交互的接口,其官方文档说明http://dev.mysql.com/doc/refman/5.1/zh/apis.html
本文给出一个实例。
1.作者开发环境:1)Windows7 + Visual studio 2008
2)MySQL版本号: 5.5。
作者的MySQL 安装目录:C:\Program Files\MySQL\
2.Visual Studio2008配置:
1)tools - options里面include files 和library files,要分别包含MySQL安装文件中的include和lib文件夹。
a)include files 如下 C:\Program Files\MySQL\MySQL Server 5.5\include 和C:\Program Files\MySQL\MySQL Server 5.5\include\mysql
b)library files 如下C:\Program Files\MySQL\MySQL Server 5.5\lib 和C:\Program Files\MySQL\MySQL Server 5.5\lib\debug 和C:\Program Files\MySQL\MySQL Server 5.5\lib\debug
2)Project---properties(快捷键ALT+F7)---Configuration Properties---Linker---Input---Additional Dependencies中添加libmysql.lib odbc32.lib odbccp32.lib三个lib文件。如果不添加这三个lib文件就会出现Link错误。
注意要修改实例中的数据库的信息。用户名、密码、database都需要修改。
#include <winsock2.h> #include<windows.h> #include <winsock.h> #include <mysql.h> //数据库的变量类型和函数 #include <stdio.h> #include <string.h> int main(void ) { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; /* db configure*/ char *server = "127.0.0.1"; char *user = "root"; char *password = "admin"; char *database = "face"; int port=3306; conn = mysql_init(NULL); /* Connect to database */ if (!mysql_real_connect(conn, NULL, user, password, database, port, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(0); } /* send SQL query */ if (mysql_query(conn, "select * from face0" )) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(0); } res = mysql_use_result(conn); /* output table name */ printf( "MySQL Tables in mysql database:\n" ); while ((row = mysql_fetch_row(res)) != NULL) printf( "%s - %s \n", row[0],row[1]); /* close connection */ mysql_free_result(res); mysql_close(conn); return 0; }