C++完成使用map Update数据 非二进制
2024-01-08 19:23:49
1、在LXMysql.h和LXMysql.cpp分别定义和编写关于pin语句的代码
//获取更新数据的sql语句 where语句中用户要包含where 更新
std::string GetUpdatesql(XDATA kv, std::string table, std::string where);
std::string LXMysql::GetUpdatesql(XDATA kv, std::string table, std::string where)
{
string sql = "";
if (kv.empty() || table.empty())
{
return "";
}
//update t_vedio set name= 'update001', size=1000 where id =10;
sql = "update `";
sql += table;
sql += "` set ";
for (auto ptr = kv.begin(); ptr != kv.end();ptr++)
{
sql += "`";
sql += ptr->first;
sql += "`=' ";
sql += ptr->second.data;
sql += "',";
}
//去除多余的逗号
sql[sql.size() - 1] = ' ';
sql += " ";
sql += where;
return sql;
}
2、编写update代码
//返回更新数量,失败返回-1
int Update(XDATA kv, std::string table, std::string where);
int LXMysql::Update(XDATA kv, std::string table, std::string where)
{
if (!mysql)
{
return -1;
}
string sql = GetUpdatesql(kv, table, where);
if (sql.empty())
{
return -1;
}
if (!Query(sql.c_str()))
{
return -1;
}
return mysql_affected_rows(mysql);
}
3、测试
//更新数据
? ? //修改id=2的数据
? ? XDATA udata;
? ? udata["name"] = "update002";
? ? cout << " my.Update=" << my.Update(udata, "t_vedio", "where id=2") << endl;
文章来源:https://blog.csdn.net/wjl990316fddwjl/article/details/135389119
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!