MySQL学习笔记_12_Linux下C++/C连接MySQL数据库(二) --返回数据的SQL
来源:互联网 发布:淘宝争议处理规则 编辑:程序博客网 时间:2024/06/18 10:24
Linux下C++/C连接MySQL数据库(二)
--返回数据的SQL
引:
返回数据的SQL是指通过查询语句从数据库中取出满足条件的数据记录
从MySQL数据库值哦功能检索数据有4个步骤:
1)发出查询
2)检索数据
3)处理数据
4)整理所需要的数据
用mysql_query()发出查询,检索数据可以使用mysql_store_result()或mysql_use_result(),取决与怎样检索数据,接着是调用mysql_fetch_row()来处理数据,最后,还必须调用mysql_free_result()以允许MySQL进行必要的整理工作。
1、一次提取所有数据
- MYSQL_RES *mysql_store_result(MYSQL * connection);
- //成功返回结构体指针,失败返回NULL
- my_ulonglong mysql_num_row(MYSQL_RES * result);
- //减速实际返回的行数
- MYSQL_ROW mysql_fetch_row(MYSQL_RES * result);
- //从mysql_store_result()中得到结果的结构体,并从中检索单个行,当没有更多的数据,或者出错时,返回NULL
- void mysql_free_result(MYSQL_RES * result);
- //使mySQL数据库整理分配的对象,关闭连接.
示例:
- #include <iostream>
- #include <fstream>
- #include <cstdlib>
- #include <mysql/mysql.h>
- using namespace std;
- void mysql_err_function(MYSQL * connection);
- int main()
- {
- MYSQL * connection;
- connection = mysql_init(NULL);
- if (!connection)
- {
- mysql_err_function(connection);
- }
- connection = mysql_real_connect(connection,"localhost","root","123456","test",0,NULL,0);
- if (!connection)
- {
- mysql_err_function(connection);
- }
- cout << "Connection to MySQL Server is Success..." << endl;
- string query;
- getline(cin,query);
- int res = mysql_query(connection,query.c_str());
- if (res)
- {
- mysql_err_function(connection);
- }
- MYSQL_RES * my_res = mysql_store_result(connection);
- cout << "Retrieved " << mysql_num_rows(my_res) << "rows" << endl;
- MYSQL_ROW sqlrow;
- while ((sqlrow = mysql_fetch_row(my_res)))
- {
- cout << "Fetched data..." << endl;
- }
- mysql_free_result(my_res);
- mysql_close(connection);
- cout << "Connection to MySQL Server is closed!" << endl;
- return 0;
- }
- void mysql_err_function(MYSQL * connection)
- {
- if (mysql_errno(connection))
- {
- cout << "Error " << mysql_errno(connection) << " : "
- << mysql_error(connection) << endl;
- exit(-1);
- }
- }
2、一次提取一行数据,用于处理了大量的数据集
- MYSQL_RES *mysql_use_result(MYSQL * connection);
- //成功返回结果集,失败返回NULL
一次取全部数据增加了网络负载,增加了时延,但是可以保证数据的完整性。
示例:
- #include <iostream>
- #include <cstdlib>
- #include <mysql/mysql.h>
- using namespace std;
- void mysql_err_function(MYSQL * connection);
- int main()
- {
- MYSQL * connection;
- connection = mysql_init(NULL);
- if (mysql_real_connect(connection,"localhost","root","123456","test",0,NULL,0))
- {
- cout << "Connection to MySQL Server is Succeed..." << endl;
- string query;
- getline(cin,query);
- int res = mysql_query(connection,query.c_str());
- if (res)
- {
- mysql_err_function(connection);//mysql_err_function()实现代码参考上例
- }
- else
- {
- MYSQL_RES * my_res = mysql_use_result(connection);
- if (my_res)
- {
- MYSQL_ROW sqlrow;
- while ((sqlrow = mysql_fetch_row(my_res)))
- {
- cout << "Fetching the Data..." << endl;
- }
- mysql_free_result(my_res);
- }
- else
- {
- mysql_err_function(connection);
- }
- }
- mysql_close(connection);
- cout << "Connection to MySQL Server is Closed!" << endl;
- }
- else
- {
- mysql_err_function(connection);
- }
- }
0 0
- MySQL学习笔记_12_Linux下C++/C连接MySQL数据库(二) --返回数据的SQL
- MySQL学习笔记_13_Linux下C++/C连接MySQL数据库(三) --处理返回数据
- MySQL学习笔记_11_Linux下C++/C连接MySQL数据库(一)
- CentOS下的C连接Mysql数据库
- CentOS下的C连接MySQL数据库
- c连接mysql数据库
- c连接mysql数据库
- c 连接mysql数据库
- C#.net笔记之连接MySQL数据库
- linux下c语言连接mysql数据库
- Linux下C连接MySQL数据库方法
- Linux下C连接MySQL数据库
- Ubuntu10.04下C连接mysql数据库
- Ubuntu 10.04 下 C 连接mysql数据库
- Ubuntu下C连接mysql数据库
- Linux 下 C语言连接MYSQL数据库
- Linux下C连接MySQL数据库方法
- Ubuntu10.04下C连接mysql数据库
- android Spinner控件详解
- 单链表各种操作的C语言实现(二)
- CAMERA驱动调试指引
- Android必备的Java知识点
- 单链表各种操作的C语言实现(一)
- MySQL学习笔记_12_Linux下C++/C连接MySQL数据库(二) --返回数据的SQL
- IO多路复用之epoll总结
- lua错误信息和回跟踪(Tracebacks)
- Iterator&Map&List&LinkedHashMap&普通for循环&增强for循环&bean
- SQL Error Code 说明
- Android Studio新建没有ActionBar的Activity
- 栈和队列的相互实现
- LeetCode Minimum Depth of Binary Tree
- linux环境变量之jdk+tomcat+maven