更新时间:2026-07-28 GMT+08:00
分享

PQexecPrepared

功能描述

发送一个请求来用给定参数执行一个预备语句,并且等待结果。

原型

PGresult* PQexecPrepared(PGconn* conn, 
                         const char* stmtName, 
                         int nParams, 
                         const char* const* paramValues,
                         const int* paramLengths,
                         const int* paramFormats,
                         int resultFormat);

参数

表1 PQexecPrepared参数

关键字

参数说明

conn

连接句柄。

stmtName

stmt名称,可以用""或者NULL来引用未命名语句,否则它必须是一个现有预备语句的名字。

nParams

参数个数。

paramValues

参数的实际值。

paramLengths

参数的实际数据长度。

须知:

下列情况中,参数长度强制使用paramLengths中对应的值:

  • 参数格式为二进制。
  • 参数格式为文本且连接参数force_no_truncation或者supportZeroCharacter的值为1。

此时paramLengths不允许为空,并且参数长度的正确性须由调用者保证。

paramFormats

参数的格式(文本或二进制)。

resultFormat

结果的格式(文本或二进制)。

当绑定的字符类型数据中含'\0'字符且libpq的0字符参数supportZeroCharacter设置为1时,用户需要保证输入的字符串长度(paramLengths)等于含'\0'字符的字符串的实际长度。当输入的字符串长度大于含'\0'字符的字符串实际长度时,此场景下若发生内存越界访问,会在libpq侧产生coredump;当输入的字符串长度小于含'\0'字符的字符串实际长度时,会按照用户输入的字符串长度对含'\0'字符的字符串进行截断。

当0字符参数supportZeroCharacter设置为1时,还需要保证客户端字符集和数据库字符集一致。

返回值

PGresult类型指针。

相关文档