自定义PHP语句中的子句
我正在阅读有关PDO并准备好声明,重点放在Postgres上。
正如我理解ps是如何在PHP中实现的,我可以注册一个命名查询,然后为它定义变量并多次运行它。 但是当where子句的使用取决于参数时会发生什么。
例如,如果!empty($param3)
那么我添加一个where子句,但如果它是空的,那么该子句将不会在查询中使用。
对于这种情况,最好的情况是缩小记录列表的筛选表单:如果未使用筛选器,则查询甚至不会使用WHERE,而可能会使用所有筛选器,从而产生大的WHERE查询。
正如我现在看到的,我需要为每种情况注册1份准备好的声明,但这会导致大量声明需要单独维护和测试。
不准备你不会执行的查询。
确实,如果WHERE子句中的搜索项存在差异,则需要准备不同的SQL字符串。
准备好的查询允许您仅使用参数代替文字值; 也就是说,您通常会在其中放置带引号的字符串或日期,或数字文字。 但参数不能用于其他语法,如表名,列名,SQL表达式,SQL关键字等。
因此,您必须在准备之前创建SQL字符串,具体取决于像!empty($param3)
这样的应用程序条件。
如果您想使用准备好的陈述,请为每种情况注册1份陈述。
链接地址: http://www.djcxy.com/p/66707.html上一篇: Custom where clauses in PHP prepared statement
下一篇: Freeing up PDO prepared statements (DEALLOCATE PREPARE)