---
name: "PQparamSendQuery"
section: "3"
platform: "linux"
package: "libpqtypes-dev"
version: "1.5.1-9"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/PQparamSendQuery"
---

# PQparamSendQuery(3)

Executes an asynchronous paramertized query using the parameters in a PGparam.

## NAME

PQparamSendQuery, PQparamSendQueryPrepared - Executes an asynchronous paramertized query using the parameters in a PGparam.

## SYNOPSIS

**#include \<libpqtypes.h\>**\

**int PQparamSendQuery(PGconn \****conn***, PGparam \****param***,**\
\
                      **const char \****command***, int** *resultFormat***);**\
 **int PQparamSendQueryPrepared(PGconn \****conn***, PGparam \****param***,**\
\
                              **const char \****stmtName***, int** *resultFormat***);**

## DESCRIPTION

*The PQparamSendQuery() and PQparamSendQueryPrepared() functions execute* *an asynchronous paramertized query using the parameters in a PGparam.  The only difference* *between these functions is that PQparamSendQuery() expects a parameterized* *command string while PQparamSendQueryPrepared() expects a stmtName* *previously prepared via PQprepare().*

*Both functions take a param argument, which must contain the same number* *of parameters as either the command string or previously prepared stmtName.* *Internally, the param is transformed into parallel arrays that are* *supplied to a PQsendQueryParams() or PQsendQueryPrepared() call.*

*The resultFormat argument indicates if text or binary results are desired;* *a value of zero or one respectively.  PQgetf supports both text and binary* *result formats, with the exclusion of arrays and composites which only support binary.*

*After successfully calling PQparamSendQuery() or PQparamSendQueryPrepared(),* *call libpq´s PQgetResult() one or more times to obtain the results.*

## RETURN VALUE

*On success, a non-zero value is returned.  On error, zero is* *returned and [PQgeterror(3)](/PQgeterror/3.md) will contain an error message.*

## EXAMPLES

### Using PQparamSendQuery

*The example uses PQparamSendQuery() to execute a query using a PGparam.*

```

```

**PGparam \*param = PQparamCreate(conn);**

**if(!PQputf(param, "%text %int4", "ACTIVE", CAT\_CAR))** **{**\
 	**fprintf(stderr, "PQputf: %s\\n", PQgeterror());** **}** **else** **{**\
 	**int success = PQparamSendQuery(conn, param,**\
 		**"SELECT \* FROM t WHERE status=$1 AND category=$2", 1);**

	**if(!success)**\
 		**fprintf(stderr, "PQparamSendQuery: %s\\n", PQgeterror());**\
 	**else**\
 		**get\_and\_print\_results(conn); /\* calls PQgetResult() \*/** **}**

**PQparamClear(param);**

### Using PQparamSendQueryPrepared

*PQparamSendQueryPrepared() is behaves identically to PQparamSendQuery(), except* *PQparamSendQueryPrepared() requires that a statement has been previously prepared* *via PQprepare().  Also, a stmtName is supplied rather than a parameterized* *command string.*

## AUTHOR

*A contribution of eSilo, LLC. for the PostgreSQL Database Management System.* *Written by Andrew Chernow and Merlin Moncure.*

## REPORTING BUGS

*Report bugs to \<libpqtypes@esilo.com\>.*

## COPYRIGHT

*Copyright (c) 2011 eSilo, LLC. All rights reserved.*\
 *This is free software; see the source for copying conditions.* *There is NO warranty; not even for MERCHANTABILITY or  FITNESS* *FOR A PARTICULAR PURPOSE.*

## SEE ALSO

*[PQparamCreate(3)](/PQparamCreate/3.md), [PQgeterror(3)](/PQgeterror/3.md), [PQparamExec(3)](/PQparamExec/3.md), [PQparamExecPrepared(3)](/PQparamExecPrepared/3.md)*
