PHP 不带参数的 PostgreSQL 准备语句

PHP PostgreSQL prepared statement without parameters

我想知道是否可以使用 PHP 的 pgsql 库准备不需要参数的语句。

我真的习惯于在程序的开头而不是在需要时准备所有 SQL 语句,所以我的代码看起来总是类似于此

<?php

    $pgsqlCon = // code to connect


    // prepare SQL statements

    $sql = "SELECT * FROM table01 " .
           "WHERE t01_idno >= ";
    pg_prepare($pgsqlCon, "table01_cur", $sql);

    $sql = "SELECT * FROM table02 " .
           "WHERE t02_idno = ";
    pg_prepare($pgsqlCon, "table02_sel", $sql);


    // start main

    $table01 = pg_execute($pgsqlCon, "table01_cur", array('1'));
    while ($row = pg_fetch_row($table01)) {
        echo "<span>found something<br /></span>";
    }

    $table02 = pg_execute($pgsqlCon, "table02_sel", array('1'));
    while ($row = pg_fetch_row($table02)) {
        echo "<span>found something else<br /></span>";
    }


?>

所以如果可能的话,我也想用这种方式准备不需要参数的语句。

我遇到了同样的问题,遗憾的是 the official documentation 中没有记录这种用法。

看一下你可以看到第三个参数不是可选的(即不在括号 [..] 中),实际上,正如上面的评论所说,传递一个空的 array() 作为第三个参数有效。

所以在准备好一个没有参数的语句后,可以像这样执行它:

$rs = pg_execute($connection, $stmt, array());