什么是准备好的陈述?

问题描述 投票:0回答:2

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

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

什么是准备好的语句,什么类型的事情会导致显示这些错误消息?

sql database postgresql prepared-statement
2个回答
4
投票

来自文档

准备好的语句是服务器端的 可用于优化的对象 表现。当准备 语句执行后,指定 语句被解析、重写,并且 计划。当 EXECUTE 命令是 随后发布了准备好的 语句只需要被执行。因此, 解析、重写和规划 阶段仅执行一次, 而不是每次声明时 被处决。

在网上搜索,我发现“pdo_pgsql_stmt”命令来自某种与数据库的PHP连接。也许此链接可以帮助您找到合适的邮件列表或问题跟踪器,您可以将错误消息发送到其中?


编辑:我想我在这里找到了你的错误:

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


0
投票

准备声明

  • 可以创建一个准备好的命名语句(查询),以便稍后使用 EXECUTE 语句运行它。 *由

    PREPARE
    语句创建的准备好的(语句)查询在注销后将被删除。

  • 可以有SELECTINSERTUPDATEDELETE

  • 可以有零个或多个仅类型参数。

  • 可以具有纯类型参数的别名,例如

    $1
    $2

  • 不能有多个语句(查询),否则会出错。

  • 不能有命名参数,例如

    num1 INT
    num2 INT
    等,否则会出错。

*我的帖子详细解释了

PREPARE
声明。

© www.soinside.com 2019 - 2024. All rights reserved.