MySQL连接数据库:C API代码, Linux,Windows
来源:互联网 发布:vb 多线程实例代码 编辑:程序博客网 时间:2024/06/11 01:30
Linux
一、准备
yum install -y mysql.x86_64 mysql-devel.x86_64
二、代码
2.1 说明
mysql_num_rows()获取查询结果的行数。
如果采用了mysql_store_result()获取结果集,可以立刻调用mysql_num_rows()。
如果采用了mysql_use_result()获取结果集,调用mysql_num_rows()返回不正确的结果,需要在检索完所有的结果集后再调用。
2.2 代码
#include <stdio.h>#include <stdlib.h>#include <mysql.h>int main(int argc, char* argv[]){ // MYSQL* conn = mysql_init(NULL); // if (!mysql_real_connect(conn, "localhost", "root", "love", "inerdns", 0, NULL, 0)) { printf("mysql_real_connect() error: %s\n", mysql_error(conn)); return 1; } // if (mysql_query(conn, "select * from probe_result")) { printf("mysql_query() error: %s\n", mysql_error(conn)); return 2; } // MYSQL_RES* res = mysql_use_result(conn); //MYSQL_RES* res = mysql_store_result(conn); // unsigned long num_rows = mysql_num_rows(res); unsigned int num_fields = mysql_num_fields(res); printf("num_rows:%d, num_fields:%d\n", num_rows, num_fields); // MYSQL_ROW row; while ( (row = mysql_fetch_row(res)) != NULL) { int i; for (i=0; i<num_fields; i++) printf("%s ", row[i]); printf("\n"); } // num_rows = mysql_num_rows(res); printf("num_rows:%d, num_fields:%d\n", num_rows, num_fields); // mysql_free_result(res); // mysql_close(conn); return 0;}
三、编译
gcc $(mysql_config --cflags) test.c -o test $(mysql_config --libs)
四、运行结果
Windows下
一、准备
mysql: ZIP下载、安装、启动、使用、卸载:http://blog.csdn.net/guowenyan001/article/details/9665803
二、代码
2.1 概述
上面Linux的代码,在Windows下完全可以运行,需要修改以下几点:
1. 包含mysql的include和lib路径。
2. #pragma comment(lib, "libmysql.lib")。
3. 包含文件#include <winsock.h>。
4. 设置libmysql.dll(3种方法:放到VS的Debug目录下,或放到C:\Windows\System32,或设置环境变量Path并重启VS)。
mysql_fetch_field_direct() 将给定结果集某列的字段编号。
2.2 代码
#include <stdio.h> #include <stdlib.h> #include <winsock.h>#include <mysql.h> #pragma comment(lib, "libmysql.lib") int main(int argc, char* argv[]) { // MYSQL* conn = mysql_init(NULL); // if (!mysql_real_connect(conn, "192.168.175.130", "root", "love", "inerdns", 0, NULL, 0)) { printf("mysql_real_connect() error: %s\n", mysql_error(conn)); return 1; } // if (mysql_query(conn, "select * from probe_result")) { printf("mysql_query() error: %s\n", mysql_error(conn)); return 2; } // MYSQL_RES* res = mysql_use_result(conn); //MYSQL_RES* res = mysql_store_result(conn); // unsigned long num_rows = mysql_num_rows(res); unsigned int num_fields = mysql_num_fields(res); printf("num_rows:%d, num_fields:%d\n", num_rows, num_fields); // MYSQL_ROW row; while ( (row = mysql_fetch_row(res)) != NULL) { int i; for (i=0; i<num_fields; i++) { /////////////////////////only modify here////////////////////// MYSQL_FIELD *field; field = mysql_fetch_field_direct(res, i); printf("Field %d is %s\n", i, field->name); ////////////////////////////////////////////////////////////// } printf("\n"); } // num_rows = mysql_num_rows(res); printf("num_rows:%d, num_fields:%d\n", num_rows, num_fields); // mysql_free_result(res); // mysql_close(conn); return 0; }
三、运行结果
参考资料:
mysql使用C API连接数据库:http://no001.blog.51cto.com/1142339/340979
- MySQL连接数据库:C API代码, Linux,Windows
- Linux下用C语言API连接MySQL数据库
- Linux下用C语言API连接MySQL数据库
- Linux下C语言API连接MySQL数据库编译选项
- Linux下用C语言API连接MySQL数据库
- Linux 环境下使用 C API 连接 MYSQL 数据库
- C++使用C API 连接MYSQL数据库
- C API 通过ODBC 连接数据库MYSQL
- C API 通过ODBC 连接数据库MYSQL
- Linux C连接Mysql数据库
- Linux C连接Mysql数据库
- Linux C连接Mysql数据库
- linux c 连接mysql数据库
- Linux C连接Mysql数据库
- windows vs2013连接数据库mysql示例代码
- Linux下用C语言API连接MySQL数据库编译选项
- C API连接MYSQL
- linux下c语言连接mysql数据库
- iOS中给UIButton通过objc_setAssociatedObject给响应方法传参
- V8 之旅:对象表示
- MySQL建表,主键,外键
- svn clean
- 黑马程序员-Java基础学习之银行业务调度系统
- MySQL连接数据库:C API代码, Linux,Windows
- [Leetcode] Container With Most Water
- C++:类和对象
- saltstack--sls文件
- 最新Android & iOS设计尺寸规范
- cookie深度解析
- 广告中的AdNetwork、AdExchange、DSP、SSP、RTB和DMP是什么?
- Activity的四种启动模式和onNewIntent()
- 由浅入深探究mysql索引结构原理、性能分析与优化