StevenPGao 2018-06-11 08:42 采纳率: 33.3%
浏览 2135
已结题

为什么明明有结果集但是mysql_num_rows(result)总是为0???

bool MyDB::exeSQL(string sql)

{

// mysql_query()执行成功返回0,失败返回非0值。与PHP中不一样

if(mysql_query(connection, sql.c_str()))

{

cout << "Query Error:" << mysql_error(connection);

exit(1);

}

else

{

result = mysql_use_result(connection); // 获取结果集

// mysql_field_count()返回connection查询的列数
cout << mysql_num_rows(result) << endl;
cout << mysql_num_fields(result) << endl;
for(int i=0; i < 3; ++i)

{

        // 获取下一行  
        row = mysql_fetch_row(result);  
        if(row <= 0)  
        {  
            break;  
        }  
        // mysql_num_fields()返回结果集中的字段数  
        for(int j=0; j < mysql_num_fields(result); ++j)  
        {  
            cout << row[j] << " ";  
        }  
        cout << endl;  
    }  
    // 释放结果集的内存  
    mysql_free_result(result);  
}  
return true;  

}

图片说明

图片说明

  • 写回答

3条回答

  • 知行,自省 2018-06-11 13:58
    关注

    mysql_num_rows()的返回值为my_ulonglong类型,在某些系统上打印可能不成功,尝试用下面的写法打印:

    cout << (unsigned long)mysql_num_rows(result) << endl;

    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB yalmip 可转移负荷的简单建模出错,如何解决?
  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?