所以需要在eclipse中加上对mysql.h的路径
项目->属性->C/C++Build -> settings -> gcc c complier -> includes -> include paths
添加两个路径:/usr/lib/mysql;/usr/include/mysql
还需要添加对 -lmysqlclient -lm两个参数
libraries(l) 中添加两个参数mysqlclient和m
从这里可以看出gcc l参数的作用。其中m是包含了数学方法 。
测试代码:
#include <stdio.h>
#include <stdlib.h>
#include <mysql/mysql.h>
#include <string.h>
int main(void)
{
const char *host = "localhost";
const char *user = "root";
const char *pass = "";
const char *db = "talkroom";
/* 定义mysql变量 */
MYSQL mysql; //
MYSQL_RES *rs; //结果集
MYSQL_ROW row;
mysql_init(&mysql); //初始化
/* 初始化 */
/* 连接数据库 */
if (!mysql_real_connect(&mysql, host, user, pass, db, 0, NULL, 0)) {
printf("%s\n", mysql_error(&mysql));
return -1;
}
printf("connect to dataBase:<%s> sucess\n", db);
char *sqlcmd = "select * from user;";
int ret = mysql_query(&mysql, sqlcmd); //函数操作成功返回0
if(ret != 0) {
printf("query failed, %s\n", mysql_error(&mysql));
} else {
rs = mysql_store_result(&mysql);//返回查询的全部结果集
int pos, colNum;
while(row = mysql_fetch_row(rs)) {
colNum = mysql_num_fields(rs);
for(pos=0; pos<colNum; pos++) {
printf("%s----", row[pos]);
}
printf("\n");
}
}
mysql_free_result(rs); /* 释放结果集 */
mysql_close(&mysql); /* 关闭连接 */
return 1;
}
数据库名 talkroom,里面有张表:user
表中数据类型:id(int), name(varchar(25)), rank(varchar(10));