- #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.csdn.net/zclmoon/article/details/6218431
http://www.cyberciti.biz/tips/linux-unix-connect-mysql-c-api-program.html