May*_*ank 0 postgresql prepared-statement
SELECT*FROM tbl_emp WHERE interest = $ 1 AND emp_id = ANY(?)
以上语句是否正确用于函数PQprepare?
如果是,那么nParams的值应该是什么?PQexecPrepared将如何被调用?
此致,Mayank
如果你正在尝试准备类似的东西= ANY (1, 2, 3),这将无法直接起作用,因为它1, 2, 3是一个句法结构,而不是一个表达式.(当然你可以这样做= ANY ($2, $3, $4),但只有你知道你有多少价值才有效.)
但你可以用数组来做.以上相当于= ANY(ARRAY[1, 2, 3]),所以你要写
SELECT * FROM tbl_emp WHERE interest = $1 AND emp_id = ANY($2)
Run Code Online (Sandbox Code Playgroud)
而且,参数的类型是,比如int和int[].
要调用PQexecPrepared,您需要一个数组作为字符串文字.像"{1, 2, 3}"(作为C字符串)的东西会做.有关详细信息,请参阅文档