所以我试图在for循环中构建我的sql语句。
但是在执行时,它会在字符串的第一个点显示错误。
是连接方法错误,因为我打印了sql语句并在postgresql中手动执行,它的工作原理。我postgresql的连接C字符串
而且曾试图
char *sqlStatement = "INSERT INTO record()..VALUES();\
INSERT INTO record()..VALUES();\
INSERT INTO record()..VALUES();
"
工程。
请注意,为了简洁起见,我仅将循环缩短为一次,并减少了列数。
代码:
char sqlStatement[8000];
for(int i=0;i<1;i++) {
sprintf(&sqlStatement[0] + strlen(sqlStatement), "INSERT INTO record (\"user_id\", \"filename\", \"ports\", \"timestamp\" ...)VALUES (1, 'example%d', 0, '123456789%d', ...);", i, i,);
}
pgResult = PQexec(pgConn, sqlStatement);
if (PQresultStatus(pgResult) != PGRES_COMMAND_OK) {
printf("%s", PQresultErrorMessage(pgResult));
PQclear(pgResult);
closeSQL(pgConn);
exit(-1);
}
错误消息:
ERROR: syntax error at or near ""
LINE 1: INSERT INTO captures ("user_id", "filename", "ports", "time...
^
啊......这解决了我的头痛。谢谢! 也将改为标准方法。 :) – resting 2013-02-26 04:01:20