mysql到postgresql查询转换问题(参数)



目前,我正在尝试将php程序从查询Mysql数据库转换为Postgresql数据库。我的理解是,Mysql接受问号作为占位符,而pg_query_params则要求对占位符进行编号。

例如,以下是从Mysql数据库中提取的php

private function setMinPrice($value) {
$this->setQuery("where", " AND e.Price >= ?");
$params = array($value);
$this->updateParams("d", $params);
}
private function setMaxPrice($value) {
$this->setQuery("where", " AND e.Price <= ?");
$params = array($value);
$this->updateParams("d", $params);
}

问题是,Postgres需要对参数进行编号($1、$2、$3等(。setMaxPrice所需的数字取决于用户是否输入了最低价格(因此称为setMinPrice(。setMinPrice(用来代替问号(的Postgres占位符值为1美元,但对于setMaxPrice,它可以是1美元或2美元,这取决于是否调用了setMinPrice。关于如何放入干净的Postgres友好占位符,可以接受不同数量的参数,有什么建议吗?

有第二个参数&$param_count(通过引用传递(,其中包含到目前为止的参数数量。您可以在函数中递增它,并使用它来构造$1$2