C基于 postgresql-devel 连接postgresql 数据库,实现增删改查的代码封装
2021/7/5 19:19:26
本文主要是介绍C基于 postgresql-devel 连接postgresql 数据库,实现增删改查的代码封装,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
yum install postgresql-devel
安装连接postgresql 相关的库- 编写 main.c
- 使用
gcc -g main.c -o main -I /usr/include -L /usr/lib64 -lpq
编译, 参数详解 ./main.exe
执行
2. main.c
#include <stdio.h> #include <stdlib.h> #include <assert.h> /** yum install postgresql-devel */ #include <libpq-fe.h> #include <string.h> const char *conninfo="host=192.168.31.140 dbname=sfang user=postgres password=13673711016"; void displayResult(const PGresult *res) { assert(NULL != res); int nfields = PQnfields(res); int ntuples = PQntuples(res); if(0 == ntuples || 0 == ntuples) { return ;} int rows = 0; int cols = 0; for (cols = 0; cols < nfields; ++cols) { fprintf(stdout, "| %s", PQfname(res, cols)); } fprintf(stdout, "|\n"); for (rows = 0; rows < ntuples; ++rows) { for (cols = 0; cols < nfields; ++cols) { fprintf(stdout, "| %s", PQgetvalue(res, rows, cols)); } fprintf(stdout, "|\n"); } } PGconn * getConnection() { PGconn *conn = PQconnectdb(conninfo); if(PQstatus(conn) == CONNECTION_BAD) { fprintf(stderr,"connection to %s failed \n",conninfo); exit(-1); } return conn; } /** create table or update table sql */ int execSql(const char * sql, void * fun_sucess_name) { PGconn *conn = getConnection(); PGresult *res; res = PQexec(conn, sql); if (PGRES_TUPLES_OK != PQresultStatus(res)){ fprintf(stderr, "#ERR-PGSQL: sql exec failed : %s \n", PQerrorMessage(conn)); PQclear(res); }else { if(NULL != fun_sucess_name) { void (* fun_sucess)(const PGresult *res) = fun_sucess_name; fun_sucess(res); } } PQfinish(conn); } //gcc -g main.c -o main -I /usr/include -L /usr/lib64 -lpq int main(int argc, char const *argv[]) { // execSql( "CREATE TABLE c_test_table(" \ // "ID INT PRIMARY KEY NOT NULL," \ // "NAME TEXT NOT NULL," \ // "AGE INT NOT NULL," \ // "ADDRESS CHAR(50)," \ // "SALARY REAL );", NULL); execSql("select * from c_test_table", displayResult); execSql("update c_test_table set address = '南京市1' where id = 1;", displayResult); execSql("select * from c_test_table where id = 1", displayResult); }
这篇关于C基于 postgresql-devel 连接postgresql 数据库,实现增删改查的代码封装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding
- 2024-06-23AI大模型企业应用实战(15)-langchain核心组件
- 2024-06-23AI大模型企业应用实战(16)-langchain核心组件
- 2024-06-23AI 大模型企业应用实战(06)-初识LangChain
- 2024-06-19EntBot.ai: AI Website Chatbot for Product Guides and Development Doc
- 2024-06-17zero-shot-learning-definition-examples-comparison
- 2024-06-06Package Easy(基于 NSIS 的打包exe安装包工具)使用方法-icode9专业技术文章分享
- 2024-06-06基于 casdoor 的 ELK 开源登录认证解决方案: elk-auth-casdoor-icode9专业技术文章分享
- 2024-05-29Elasticsearch慢查询日志配置