PHP PostgreSQL编写的语句没有参数

时间:2015-11-03 12:35:24

标签: php postgresql prepared-statement

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

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

<?php

    $pgsqlCon = // code to connect


    // prepare SQL statements

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

    $sql = "SELECT * FROM table02 " .
           "WHERE t02_idno = $1";
    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>";
    }


?>

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

1 个答案:

答案 0 :(得分:2)

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

看着它,您可以看到第三个参数不是可选的(即不在括号[..]中),并且确实如上面的注释所述,在第三个参数起作用时传递空的array()

因此,在准备了没有参数的语句之后,可以像这样执行它:

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