使用IN()参数的PostgreSQL PREPARE查询

我正在尝试从PHP准备一个查询

pg_prepare($con, "prep", "select * from test where tid in ($1)");

后执行它:

$strpar = "3,4,6,8,10";
pg_execute($con, "prep", array($strpars));

问题是我无法传递一系列构建的值,因为prepare需要固定数量的参数.有没有办法让参数动态化?

解决方法:

使用数组表示一系列值:

pg_prepare($con, "prep", "select * from test where tid=ANY($1::int[])");

$strpar = "{3,4,6,8,10}";
pg_execute($con, "prep", array($strpars));

如果规划器能够自己推断类型,则查询中对int []的强制转换甚至可能是多余的.

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...