使用pg_query_params数组占位符搜索多个列

时间:2015-03-06 16:03:51

标签: php sql postgresql placeholder

我将两个不同的值传递给文件,一个是用户输入的,另一个是从下拉菜单中的一组预定义值中选择的,这是我遇到的问题。

为查询使用单个占位符时,它可以工作,例如:

$result = pg_query_params($con, "SELECT * FROM chemsub WHERE name like $1", array("%".$_REQUEST['term']."%"));

我想改变查询,以便用户可以更改他们正在搜索哪一列我似乎无法让它工作,这就是我所拥有的

$result = pg_query_params($con, "SELECT * FROM chemsub WHERE $1 like $2", array($_REQUEST['dropdown'],"%".$_REQUEST['term']."%"));

我知道正确的值正在传递到文件中,并且正确的拼写与数据库中的列名匹配,但由于某种原因,它不返回任何行。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

你不能用params代替标识符。如果要再次查询动态列,可以在php中准备查询文本,或者让sql看起来像($1 = 'foo' AND foo LIKE $2) OR ($1 = 'bar' ANd bar LIKE $2。“