void InsertEmployeeRec(PGconn *conn, char * fullname)
{
// Append the SQL statment
std::string sSQL;
sSQL.append("INSERT INTO Worker VALUES ('");
sSQL.append(fullname);
sSQL.append("')");
// Execute with sql statement
PGresult *res = PQexec(conn, sSQL.c_str());
if (PQresultStatus(res) != PGRES_COMMAND_OK)
{
printf("Insert employee record failed");
PQclear(res);
CloseConn(conn);
}
printf("Insert employee record - OK\n");
// Clear result
PQclear(res);
}
这是我插入数据库并将其称为
的函数InsertEmployeeRec(conn,"n");
最后,我收到错误:
检测到glibc * / home / mert / workspace1 / Project / Debug / Project:double free或corruption(!prev):0x0000000001df4050 *
可能是什么问题?
答案 0 :(得分:1)
您正在拨打PQclear(res);
两次。
答案 1 :(得分:0)
如果Worker表中有多个列,则需要声明它们:
sSQL.append("INSERT INTO Worker (one_column, name, another_one) VALUES ('");
您只需声明没有默认值的列。