c 编程 mysql结果集_使用mysql C语言API编写程序—MYSQL数据库查询操作(执行查询操作,获取查询结果的字段数,记录行数,...
//MYSQL_RES保存查詢結(jié)構(gòu)
MYSQL_RES*
result_ = NULL;
int
error_code = 0; //保存錯誤碼
char
error_info[1024] = '\0'; //保存錯誤信息
//對mysql數(shù)據(jù)庫進(jìn)行查詢操作:
char
query_sql[1024] = "select * from db_name.table_name";
//構(gòu)建查詢sql語句
if(result_
!= NULL) //防止之前已經(jīng)被使用過(所有的使用,在使用前都要判空)
{
mysql_free_result(result_);
result_
= NULL;
}
if(link_
== NULL) //防止沒有鏈接
{
//重連,按照建立mysql數(shù)據(jù)庫鏈接的方法進(jìn)行建立,前面的blog中有講到
}
//執(zhí)行sql查詢
if(mysql_query(link_,query_sql)
!= 0)
{
//查詢失敗
error_code
= mysql_errno(link_); //獲取錯誤碼
strncpy(error_info,mysql_error(link_),1024);
//獲取錯誤信息
if((error_code
== 2013) || (error_code == 2006)) //2006
mysql服務(wù)器不可用,2013查詢過程中,丟失鏈接
{
//重鏈,按照建立mysql數(shù)據(jù)庫鏈接的方法進(jìn)行建立
if(//重鏈?zhǔn)?
{
return
false;
}
//重鏈成功,再次查詢
if(mysql_query(link_,query_sql)
!= 0)
{
//再次查詢失敗
error_code
= mysql_errno(link_);
strncpy(error_info,mysql_error(link_),1024);
//返回錯誤
return
false;
}
error_code
= 0; //查詢成功了。
}
}
else
{
//查詢成功
}
//查詢成功,保存查詢結(jié)果
result_
= mysql_store_result(link_);
if(result_
== NULL)
{
error_code
= mysql_errno(link_); //獲取錯誤碼
strncpy(error_info,mysql_error(link_),1024);
//獲取錯誤信息
//返回錯誤
return
false;
}
//獲取查詢結(jié)果的行數(shù)(記錄數(shù))
return
mysql_num_rows(result_);
//獲取查詢結(jié)果的字段數(shù)
return
mysql_num_fields(result_);
//獲取查詢結(jié)果的各個字段的字段名稱
MYSQL_FIELD
*fields; //保存字段名字信息
unsing
int num_fields;
unsigned
int i;
num_fields
= mysql_num_fields(result); //獲取查詢結(jié)果中,字段的個數(shù)
fields
= mysql_fetch_fields(result); //獲取查詢結(jié)果中,各個字段的名字
for(i =
0; i < num_fields;i++)
{
printf("field
%u is %s\n",i,fields[i].name);
}
//獲取查詢出來的結(jié)果,即遍歷查詢到的每一行記錄
MYSQL_ROW
row; //保存行記錄信息
unsigned
int num_fields;
unsigned
int i;
num_fields
= mysql_num_fields(result_);
while((row
= mysql_fetch_row(result_))) //遍歷查詢結(jié)果中的各行記錄
{
unsigned
long *lengths = NULL;
lengths
= mysql_fetch_lengths(result_); //獲取每一個記錄行中,每一個字段的長度,在lengths數(shù)組中。
for( i
= 0; i < num_fields; i++)
{
printf("數(shù)據(jù)長度%u
\t 數(shù)據(jù)內(nèi)容%s",lengths[i],row[i]?row[i]:"NULL");
}
printf("\n");
}
//釋放資源,斷開鏈接
if(result_ != NULL)
{
mysql_free_result(result_);
result_ = NULL;
}
if(link_ != NULL)
{
mysql_close(link_);
link_ = NULL;
}
總結(jié)
以上是生活随笔為你收集整理的c 编程 mysql结果集_使用mysql C语言API编写程序—MYSQL数据库查询操作(执行查询操作,获取查询结果的字段数,记录行数,...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 配置多个数据库连接_总结My
- 下一篇: mysql老是自动停止_ecs云服务器