程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL學習筆記_12_Linux下C++/C連接MySQL數據庫(二)--返回數據的SQL

MySQL學習筆記_12_Linux下C++/C連接MySQL數據庫(二)--返回數據的SQL

編輯:MySQL綜合教程

MySQL學習筆記_12_Linux下C++/C連接MySQL數據庫(二)--返回數據的SQL




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 #include
#include #include
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);
} }
[cpp] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片
MYSQL_RES *mysql_use_result(MYSQL * connection); //成功返回結果集,失敗返回NULL
[cpp] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片
#include #include
#include 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);
} }

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved