query = "select * results where id = '";
query.append(ID);
query.append("'");
res = PQexec(conn, query.c_str());
このステートメントを実行した後、次のエラーが発生します。
row number 0 is out of range 0..-1
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct null not valid
しかし、postgresql で同じクエリを実行すると、問題はありません。
select * from results where id = 'hello'
唯一の問題は、渡されたクエリ パラメータがデータベースにない場合、実行時エラーがスローされることです。データベースにある正確なクエリパラメーターを指定すると、正常に実行されます。