C与postgres,获取所有行然后放入html表

时间:2017-03-21 16:10:45

标签: c database postgresql resultset

我有一个postgres数据库和C中与该表连接的程序

现在我需要从这个表中获取所有结果并创建一个包含数据的html文件。

这是我的表

=> select * from users;

 id_user | first_name  |  last_name  |       address        |      city       |      phone
---------+-------------+-------------+----------------------+-----------------+------------------
       1 |  James      |  Butt       |  6649 N Blue Gum St  |  New Orleans    |  504-621-8927
       2 |  Josephine  |  Darakjy    |  4 B Blue Ridge Blvd |  Brighton       |  810-292-9388
       4 |  Lenna      |  Paprocki   |  639 Main St         |  Anchorage      |  907-385-4412

现在我有一个循环

for (int i = 0; i < 20; i++) {
    char createCommand[200];
    sprintf(createCommand,
            "%s %d %s %d %s", "select * from users limit ", i, "offset ", i , ";");
    doSQL(conn, createCommand);
}

void doSQL(PGconn *conn, char *command)
{
    PGresult *result;

    printf("%s\n", command);

    result = PQexec(conn, command);
    printf("status is     : %s\n", PQresStatus(PQresultStatus(result)));
    printf("#rows affected: %s\n", PQcmdTuples(result));
    printf("result message: %s\n", PQresultErrorMessage(result));

    switch(PQresultStatus(result))
    {
        case PGRES_TUPLES_OK:
            int n = 0, m = 0;
            int nrows   = PQntuples(result);
            int nfields = PQnfields(result);
            printf("number of rows returned   = %d\n", nrows);
            printf("number of fields returned = %d\n", nfields);
            for(m = 0; m < nrows; m++)
            {
                for(n = 0; n < nfields; n++)
                    printf(" %s = %s", PQfname(result, n),PQgetvalue(result,m,n));
                printf("\n");
            }
    }
    PQclear(result);
}

但是doSQL是一个void函数,所以我想创建一个结构来放置db中的值,但我不知道如何准确地执行它。

0 个答案:

没有答案