我将两个不同的值传递给文件,一个是用户输入的,另一个是从下拉菜单中的一组预定义值中选择的,这是我遇到的问题。
为查询使用单个占位符时,它可以工作,例如:
$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']."%"));
我知道正确的值正在传递到文件中,并且正确的拼写与数据库中的列名匹配,但由于某种原因,它不返回任何行。
非常感谢任何帮助。
答案 0 :(得分:0)
你不能用params代替标识符。如果要再次查询动态列,可以在php中准备查询文本,或者让sql看起来像($1 = 'foo' AND foo LIKE $2) OR ($1 = 'bar' ANd bar LIKE $2
。“