这是关于我能想到的用来说明我的问题的最基本的 libpq 示例。这里的目标只是打印出转义的字符串。
#include <iostream>
#include <libpq-fe.h>
#include <string.h>
using namespace std;
int main(){
PGconn *db;
char connstring[] = "dbname=TheInternet";
db = PQconnectdb(connstring);
char url[] = "http://www.goo'gle.com/";
cout<<PQescapeLiteral(db, (const char *)url, (size_t) strlen(url))<<"\n";
}
当我编译时:
g++ PQescapeLiteral_test.cpp -lpq
甚至:
g++ PQescapeLiteral.cpp -I/usr/include/pgsql:/usr/include/pgsql/server:/usr/include/pgsql/server/libpq -lpq
我得到错误:
PQescapeLiteral.cpp: In function ‘int main()’:
PQescapeLiteral.cpp:12: error: ‘PQescapeLiteral’ was not declared in this scope
我在 pgsql 9.0 手册的第 31.3.4 节中找到了 PQescapeLiteral:转义字符串以包含在 SQL 命令中。我有来自 yum 的最新版本的 libpq 和 libpq-devel,所以我很确定它应该被定义。
如果有人能指出我正确的方向,我将不胜感激。