我正在阅读有关 PDO 和准备好的声明,重点是 Postgres。
当我了解 ps 如何在 PHP 中实现时,我可以注册一个命名查询,然后为它定义变量并多次运行它。但是当 where 子句的使用依赖于参数时会发生什么。
例如,如果!empty($param3)
then 我添加了 where 子句,但如果它为空,则不会在查询中使用该子句。
最好的情况是使用过滤器形式来缩小记录列表:如果不使用过滤器,则查询甚至不会使用 WHERE,而所有过滤器都可能被使用,从而导致大的 WHERE 查询。
正如我现在所看到的,我需要为每种情况注册 1 个准备好的语句,但这会导致大量语句需要单独维护和测试。