我正在尝试使用字符串转义功能而无法访问打开的pqxx ::连接。
请考虑以下代码:
#include <pqxx/pqxx>
#include <iostream>
int main() {
pqxx::connection c;
std::cout << c.quote("this is a test") << std::endl;
}
它引发我的连接被破坏了。有人可以给我一个标志,如果有另一种方法来实现这一点(希望没有数据库连接)?我忽略了什么吗?
答案 0 :(得分:1)
我遇到了同样的问题。 我解决问题的方法如下所示。 这是一个不能完全解决问题的技巧,但是,它的懒惰部分在整个运行时只执行一次,并且被最小化到最大。 真正的问题是 libpqxx 的编写方式。
std::string
quote(const std::string& str, const std::string& database_connection)
{
try {
static pqxx::lazyconnection C {database_connection};
static bool disconnect = true;
if(disconnect) {
C.disconnect();
disconnect = false;
}
return C.quote(str);
} catch (const std::exception &e) { throw e.what(); }
}
答案 1 :(得分:0)
字符转义序列可以在不使用pqxx的情况下轻松使用。
std::cout << "\"This is a qoute\"" << std::endl;
'\'字符开始转义序列。对于qoutes,你只需说“