2

我有一个mydb用 table调用的数据库People(id, name)

我想使用 pqxx C++ 接口在该表中插入一行。

SQL查询非常简单INSERT INTO people (id, name) VALUES (1, "Bob");

C++ 代码在这里:

#include <pqxx/pqxx>

using namespace std;

int main(int, char *argv[])
{
  pqxx::connection conn( /* some stuff here */ );

  conn.prepare("insert_to_people", "insert into people (id, name) values ($1, $2);");
  pqxx::work pq(conn);

  pq.prepared("insert_to_people")(1)("Bob").exec();
  pq.commit();

  return 0;
}

但我得到以下异常:

terminate called after throwing an instance of 'pqxx::usage_error'
  what():  Too many arguments for prepared statement insert_to_people: expected 0, received 2
Aborted (core dumped)

怎么了?

4

1 回答 1

4

自从我使用 c++ 以来已经有几年了!查看文档似乎需要声明参数类型?也许这会起作用:

conn.prepare("insert_to_people", "insert into people (id, name) values ($1, $2)")("integer")("varchar", pqxx::prepare::treat_string);

此外,还有一个尾随 ; 在查询中。我不认为它会伤害,但它不是必需的。

-G

于 2014-10-28T17:41:00.387 回答