把 MYSQL* mysql作为参数据传递处理 出现错误

请看以下代码
先执行 mysql_query(mysql,SQLstr)
if(mysql_query(mysql,SQLstr))
{
StrErr=mysql_error(mysql);
}

然后用以下函数处理结果
if( ResRecordstr(mysql,&SizeToatl,StrTotal)<0)
{

}
//
以下是函数原形
int ResRecordstr(MYSQL* mysql,unsigned long* SizeToatl,char* StrTotal)
{
res=mysql_use_result(mysql);
fields = mysql_fetch_fields(res);
num_fields = mysql_num_fields(res);
num_rows= mysql_num_rows(res);
}

这样子处理行么 ?
最后的结果是 num_fields 能得到正确的值
可是 num_rows 总是为 0
为什么?
把mysql作为参数传为什么不行?

---------------------------------------------------------------

调用mysql_use_result()后要循环调用mysql_fetch_row(),遍历完所有行后再调用mysql_num_rows()就行了;
或者你不用mysql_use_result(),换成mysql_store_result(),再调用mysql_num_rows()就行了,这样就不用先遍历所有的行。

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus