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());
我想知道是否可以使用 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());