#include <stdio.h>
#include <libpq-fe.h>
int main() {
// 连接字符串,替换为你的实际数据库信息
const char *conninfo = "dbname=mydatabase user=myuser password=mypassword host=myhost port=myport";
// 建立数据库连接
PGconn *conn = PQconnectdb(conninfo);
// 检查连接是否成功
if (PQstatus(conn) != CONNECTION_OK) {
fprintf(stderr, "Connection to database failed: %s", PQerrorMessage(conn));
PQfinish(conn);
return 1;
}
// 执行查询
const char *query = "SELECT * FROM mytable";
PGresult *res = PQexec(conn, query);
// 检查查询是否成功
if (PQresultStatus(res) != PGRES_TUPLES_OK) {
fprintf(stderr, "Query execution failed: %s", PQresultErrorMessage(res));
PQclear(res);
PQfinish(conn);
return 1;
}
// 处理查询结果
int rows = PQntuples(res);
int cols = PQnfields(res);
printf("Query returned %d rows and %d columns.\n", rows, cols);
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
printf("%s\t", PQgetvalue(res, i, j));
}
printf("\n");
}
// 释放结果集和连接
PQclear(res);
PQfinish(conn);
return 0;
}
请注意,这只是一个简单的演示程序,实际的应用程序可能需要更多的错误处理和安全考虑。确保连接字符串、查询字符串和结果处理逻辑符合你的实际需求。
转载请注明出处:http://www.zyzy.cn/article/detail/8389/PostgreSQL