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'
唯一的问题是,如果传递的查询参数不在数据库中,则会引发运行时错误。如果您提供数据库中的确切查询参数,它会正常执行。