更新时间:2024-11-01 GMT+08:00
连接数据库
连接到数据库是使用libpq开发应用程序的第一步。此时用户可以使用PQconnectdb或PQsetdbLogin函数来建立与数据库服务器的连接。这些函数将返回一个连接对象,用户需要保存这个连接对象,以便后续的数据库操作。
以开发源程序testlibpq.c为例(完整示例请参考数据库建连、执行SQL并返回结果):
/* * 说明: testlibpq.c源程序,提供libpq基本且常见的使用场景。 * 使用libpq提供的PQconnectdb、PQexec、PQntuples、PQfinish等接口实现数据库建连,执行sql,获取返回结果以及资源清理。 * 头文件,自定义函数请参考完整示例。 */ /* 此处user、passwd等变量应从环境变量或配置文件读取,环境变量需用户自己按需配置;非环境变量情况下可直接赋值字符串 */ const char conninfo[1024]; PGconn *conn; PGresult *res; int nFields; int i,j; char *passwd = getenv("EXAMPLE_PASSWD_ENV"); char *port = getenv("EXAMPLE_PORT_ENV"); char *host = getenv("EXAMPLE_HOST_ENV"); char *username = getenv("EXAMPLE_USERNAME_ENV"); char *dbname = getenv("EXAMPLE_DBNAME_ENV"); /* * 用户在命令行上提供了conninfo字符串的值时使用该值 * 否则环境变量或者所有其它连接参数 * 都使用缺省值。 */ if (argc > 1) strcpy(conninfo, argv[1]); else sprintf(conninfo, "dbname=%s port=%s host=%s application_name=test connect_timeout=5 sslmode=allow user=%s password=%s", dbname, port, host, username, passwd); /* 连接数据库 */ conn = PQconnectdb(conninfo); /* 检查后端连接成功建立 */ if (PQstatus(conn) != CONNECTION_OK) { fprintf(stderr, "Connection to database failed: %s", PQerrorMessage(conn)); exit_nicely(conn); }
父主题: 开发步骤