什么是准备好的声明?

最后发布: 2008-09-10 18:32:18


问题

我在postgres pg_log目录中的.log文件中看到了一堆行,如下所示:

错误:准备好的语句“pdo_pgsql_stmt_09e097f4”不存在

什么是准备好的语句,以及可以导致显示这些错误消息的类型?

postgresql
回答

文档

预准备语句是服务器端对象,可用于优化性能。 执行PREPARE语句时,将解析,重写和计划特定语句。 随后发出EXECUTE命令时,只需执行准备好的语句。 因此,解析,重写和计划阶段仅执行一次,而不是每次执行语句。

搜索网络时,我发现“pdo_pgsql_stmt”命令来自某种与数据库的PHP连接。 也许这个链接可以帮助您找到可以发送错误消息的可设置的邮件列表或问题跟踪器?


编辑:我想我在这里发现了你的错误:

http://bugs.php.net/bug.php?id=37870


回答

我认为这会对你有所帮助: http//jdbc.postgresql.org/documentation/81/server-prepare.html

基本上看起来像可以预编译的存储过程。