// De header van de PostgreSQL-clientbibliotheek
```
2. Verbinding tot stand brengen:
Dit is de kern van het proces. U hebt een verbindingsreeks nodig die de databaseparameters specificeert.
```c
PGconn *conn;
const char *conninfo;
conninfo ="dbname=mijndatabasegebruiker=mijngebruikerswachtwoord=mijnwachtwoord host=localhost poort=5432"; // Vervang door uw gegevens
conn =PQconnectdb(conninfo);
if (PQstatus(conn) !=VERBINDING_OK) {
fprintf(stderr, "Verbinding met database mislukt:%s", PQerrorMessage(conn));
PQfinish(aangesloten);
uitgang(1);
}
```
* `dbnaam=mijndatabase`: De naam van uw PostgreSQL-database.
* `user=mijngebruiker`: Uw PostgreSQL-gebruikersnaam.
* `wachtwoord=mijnwachtwoord`: Uw PostgreSQL-wachtwoord.
* `host=localhost`: De hostnaam of het IP-adres van de PostgreSQL-server. Wijzig dit als uw database niet lokaal is.
* `poort=5432`: Het poortnummer waar PostgreSQL op luistert (standaard is 5432).
3. Query's uitvoeren:
Nadat u verbinding heeft gemaakt, kunt u SQL-query's uitvoeren. Dit voorbeeld toont een eenvoudige `SELECT`-query:
```c
PGresultaat *res;
res =PQexec(conn, "SELECT versie();");
als (PQresultStatus(res) !=PGRES_TUPLES_OK) {
fprintf(stderr, "SELECTEREN mislukt:%s", PQerrorMessage(conn));
PQclear(res);
PQfinish(aangesloten);
uitgang(1);
}
printf("PostgreSQL-versie:%s\n", PQgetvalue(res, 0, 0));
PQclear(res); // Maak het resultaatsetgeheugen vrij
```
* `PQexec(conn, "SELECT versie();")`: Voert de SQL-query uit.
* `PQresultStatus(res)`: Controleert de status van de uitvoering van de query. `PGRES_TUPLES_OK` geeft succes aan.
* `PQgetvalue(res, 0, 0)`: Haalt de waarde op uit de resultatenset. `(0, 0)` specificeert de eerste rij (0) en eerste kolom (0).
4. Andere soorten zoekopdrachten verwerken (INSERT, UPDATE, DELETE):
Voor `INSERT`-, `UPDATE`- en `DELETE`-query's controleert u doorgaans `PQcmdTuples` om te zien hoeveel rijen zijn beïnvloed.
```c
res =PQexec(conn, "INSERT INTO mytable (kolom1, kolom2) VALUES ('waarde1', 'waarde2');");
als (PQresultStatus(res) ==PGRES_COMMAND_OK) {
printf("INSERT succesvol. %ld rijen beïnvloed\n", PQcmdTuples(res));
} anders {
fprintf(stderr, "INSERT mislukt:%s", PQerrorMessage(conn));
}
PQclear(res);
```
5. Sluit de verbinding:
Verbreek altijd de verbinding als u klaar bent.
```c
PQfinish(aangesloten);
```
Volledig voorbeeld:
```c
#include
#include
#include
#erbij betrekken
int hoofd() {
PGconn *conn;
const char *conninfo;
PGresultaat *res;
conninfo ="dbname=mijndatabasegebruiker=mijngebruikerswachtwoord=mijnwachtwoord host=localhost poort=5432"; // Vervang door uw gegevens
conn =PQconnectdb(conninfo);
if (PQstatus(conn) !=VERBINDING_OK) {
fprintf(stderr, "Verbinding met database mislukt:%s", PQerrorMessage(conn));
uitgang(1);
}
res =PQexec(conn, "SELECT versie();");
als (PQresultStatus(res) !=PGRES_TUPLES_OK) {
fprintf(stderr, "SELECTEREN mislukt:%s", PQerrorMessage(conn));
PQclear(res);
PQfinish(aangesloten);
uitgang(1);
}
printf("PostgreSQL-versie:%s\n", PQgetvalue(res, 0, 0));
PQclear(res);
PQfinish(aangesloten);
retour 0;
}
```
Voordat u compileert:
* Installeer libpq-dev: U moet de PostgreSQL-clientontwikkelingsbibliotheken installeren. Op Debian/Ubuntu-systemen wordt dit meestal gedaan met:`sudo apt-get install libpq-dev`
* Compileren: Compileer uw code met behulp van een C-compiler (zoals GCC):`gcc uw_programmanaam.c -lpq -o uw_programmanaam`
Vergeet niet om de tijdelijke verbindingsreekswaarden te vervangen door uw daadwerkelijke databasereferenties. Een grondige foutafhandeling is cruciaal in productiecode om onverwachte crashes te voorkomen. Dit voorbeeld biedt basisfoutcontrole; Voor een echte toepassing zou een robuustere foutafhandeling nodig zijn.