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

为什么明明有结果集但是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 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器