聪明的人猿 2024-10-15 12:51 采纳率: 88.9%
浏览 8
已结题

使用修改MySQL数据库数据报错

img

对应部分代码如下


map<string, string>kv;//kv(key value)更加灵活
kv.insert(make_pair("name", "image_update001.png"));
kv.insert(make_pair("size", "5000"));
string where = "where id=1";
string temp = "";
//制作迭代器
for (auto ptr = kv.begin(); ptr != kv.end(); ptr++)
{
    temp += "`";
    temp += ptr->first;
    temp += "`='";
    temp += ptr->second;
    temp += "',";
}
temp += "id=id";
string sql3 = "update t_image set";
sql3 += temp;
sql3 += where;
int ff = mysql_query(&mysql, sql3.c_str());
if (ff == 0)
{
    int count = mysql_affected_rows(&mysql);
    cout << "update mysql_affected_rows" << count << endl;
}
else {
    cout << "update failed!" << mysql_error(&mysql) << endl;
}
  • 写回答

2条回答 默认 最新

  • 聪明的人猿 2024-10-16 09:25
    关注

    修改第一个temp为"where id=1"并输出合并内容

    img


    输入的正确格式应该是"update t_image set name='test3.pns',size=2000 where id=2"
    对比输出内容可以明显发现where if前多了个逗号,想办法解决where id前的逗号就可以了
    具体修改方案如下

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月24日
  • 已采纳回答 10月16日
  • 创建了问题 10月15日