来源:自学PHP网 时间:2015-04-16 10:51 作者: 阅读:次
[导读] Linux下C 43; 43; C连接MySQL数据库(二)--返回数据的SQL引: 返回数据的SQL是指通过查询语句从数据库中取出满足条件的数据记录从MySQL数据库 20540;哦功能检索数据有4个步骤: 1)发出查询...
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); } } |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com