我想知道是否可以使用不需要参数的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>";
}
?>
所以我想以这种方式准备不需要参数的语句,如果可能的话。
答案 0 :(得分:2)
我遇到了同样的问题,遗憾的是the official documentation中没有记录这种用法。
看着它,您可以看到第三个参数不是可选的(即不在括号[..]
中),并且确实如上面的注释所述,在第三个参数起作用时传递空的array()
。
因此,在准备了没有参数的语句之后,可以像这样执行它:
$rs = pg_execute($connection, $stmt, array());