微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 pqxx7 中使用动态参数执行 sql

如何解决如何在 pqxx7 中使用动态参数执行 sql

我想用 dynamci 参数执行 sql

我可以在 pqxx4 中找到如下代码

work txn(*conn);
pqxx::result r = txn.prepared("insert into mytable (a,b,c,d,e) values (1,2,$1,$2,$3)")(person_name)(age)(sex).exec();
txn.commit();

但是我用的是7版的pqxx,代码不支持

那么如何在 pqxx7 中使用动态参数执行 sql

using FieldValue = std::variant<int32_t,int64_t,float,double,std::string,bool>

std::string tableName = "mytable";
std::vector<std::string> columNames{"a","b","c","d","e",...};
std::vector<FieldValue >{1,"",5L ...};

std::string sql = "INSERT INTO \"" + tableName + "\"(";
for (int i = 0; i < colums.size(); i++)
{
  if (i > 0)
  {
    sql += ",";
  }
  sql += colums[i];
}
sql += " ) VALUES ( ";
for (int i = 0; i < colums.size(); i++)
{
  if (i > 0)
  {
    sql += ",";
  }
  sql += "$" + std::to_string(i + 1);
}
sql += " )";

pqxx::connection conn{...};
conn.prepare("test",sql);
pqxx::work work(conn);


怎么办?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。