MySQL学习笔记_12_Linux下C++/C连接MySQL数据库(二)--返回数据的_MySQL

php中文网
发布: 2016-06-01 13:18:03
原创
1263人浏览过

Linux学习笔记

bitsCN.com

Linux下C++/C连接MySQL数据库(二)

--返回数据的SQL

引:

返回数据的sql是指通过查询语句从数据库中取出满足条件的数据记录

从MySQL数据库值哦功能检索数据有4个步骤:

1)发出查询

2)检索数据

3)处理数据

立即学习C++免费学习笔记(深入)”;

4)整理所需要的数据

通义灵码
通义灵码

阿里云出品的一款基于通义大模型的智能编码辅助工具,提供代码智能生成、研发智能问答能力

通义灵码 304
查看详情 通义灵码

 

用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);	}}
登录后复制
bitsCN.com
c++速学教程(入门到精通)
c++速学教程(入门到精通)

c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号