#include <mysql/mysql.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
MYSQL mysql;
MYSQL_ROW row;
MYSQL_RES *result;
unsigned int num_fields;
unsigned int i;
mysql_init(&mysql);
if(!mysql_real_connect(&mysql, "localhost", "root", "root","test",0,NULL,0))
{
printf("Connection failed,%s\n",mysql_error(&mysql));
}
if(!mysql_query(&mysql,"SELECT * FROM test"))
{
result = mysql_store_result(&mysql);
if(!result)
{
perror("result error.");
exit(1);
}
num_fields = mysql_num_fields(result);
while(row = mysql_fetch_row(result))
{
for(i=0; i<num_fields; i++)
{
printf("%s\t",row[i]);
}
printf("\n");
}
mysql_free_result(result);
}
mysql_close(&mysql);
}
编译:
gcc mysqlTest.c -lmysqlclient -o mysqlTest
或者
gcc mysqlTest.c -o mysqlTest `mysql_config --cflags --libs`
或者
gcc -o mysqlTest $(mysql_config --cflags) mysqlTest.c $(mysql_config --libs)
包含库文件可以通过mysql_config命令来实现:
1. --libs 选项 – 连接MySQL客户端函数库所需要的库和选项.
$ mysql_config --libs
输出:
-L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib64 -lssl -lcrypto
2. --cflags 选项 – 使用必要的include文件的选项等等.
$ mysql_config --cflags
输出:
-I/usr/include/mysql -g -pipe -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing
你需要将上面两个选项加入到对源文件的编译命令中. 所以,要编译上面的程序,要使用下面的命令:
$ gcc -o test_mysql $(mysql_config --cflags) mysql-c-api.c $(mysql_config --libs)
执行编译后的程序:
$ ./test_mysql
链接:
http://abitno.me/linux-c-connect-mysql.html
http://blog.youkuaiyun.com/zclmoon/article/details/6218431
http://www.cyberciti.biz/tips/linux-unix-connect-mysql-c-api-program.html