1
這是關於我能想到的最基本的libpq示例來說明我的問題。這裏的目標只是打印出逃逸的字符串。PQescapeLiteral未定義?
#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
我發現PQescapeLiteral手冊中的pgSQL用9.0節31.3.4 .:逃逸字符串f或包含在SQL命令中。我有yum最新版本的libpq和libpq-devel,所以我很確定它應該被定義。
如果有人能指出我在正確的方向,我會很感激。
libpqxx i686的1:3.0.2-4.fc13 Fedora的 libpqxx-devel的i686的1:3.0.2-4.fc13的Fedora ...的Postgres 8.4.5 ...這可能是它!我會嘗試安裝最新的:) – KeatsKelleher 2011-01-07 00:57:43