pg_prepare()
会收到一个初步的SQL,然后使用pg_execute()
填充参数。
有没有办法获得生成的SQL,以便我可以打印和调试它?
答案 0 :(得分:2)
可能不是,因为预备语句是服务器端的事情。来自http://www.postgresql.org/docs/9.3/static/sql-prepare.html的文档:
预准备语句是服务器端对象,可用于优化性能。执行PREPARE语句时,将解析,分析和重写指定的语句。随后发出EXECUTE命令时,将计划并执行准备好的语句。这种分工避免了重复的分析分析工作,同时允许执行计划依赖于提供的特定参数值。
这意味着即使服务器也没有“填写”原始字符串中的数据,而是在准备过程中解析并“编译”该语句,然后将编译后的语句和数据传递给规划器。