Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用pg_query_参数数组占位符搜索多个列_Php_Sql_Postgresql_Placeholder - Fatal编程技术网

Php 使用pg_query_参数数组占位符搜索多个列

Php 使用pg_query_参数数组占位符搜索多个列,php,sql,postgresql,placeholder,Php,Sql,Postgresql,Placeholder,我将两个不同的值传递到文件中,一个是用户输入的,另一个是从下拉菜单中预定义的一组值中选择的,这就是我遇到的问题 在查询中使用单个占位符时,它会起作用,例如: $result = pg_query_params($con, "SELECT * FROM chemsub WHERE name like $1", array("%".$_REQUEST['term']."%")); 我想更改查询,以便用户可以更改他们正在搜索的列。我似乎无法使其正常工作,以下是我所拥有的 $result = pg_q

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

在查询中使用单个占位符时,它会起作用,例如:

$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']."%"));
我知道正确的值被传递到文件中,其拼写与数据库中的列名匹配,但由于某些原因,它不会返回任何行


任何帮助都将不胜感激

不能用参数代替标识符。如果希望再次查询动态列,可以用php编写查询文本,或者让sql看起来像
($1='foo'和foo像$2),或者($1='bar'和类似于bar的$2

谢谢你的回答,尽管我已经尝试了你的建议,但都无法实现,还有其他建议吗?@syn\p你说的“无法实现”是什么意思?在看到查询及其返回的错误之前,我不能说任何话。查询不会返回错误,只是无法按预期工作。而不是返回行数(这将扩展为返回实际结果,但每次只返回一步),它正在完成查询并返回“Rows:0”。我已通过将查询与pg_query_参数分离并在调用query_参数之前对其进行回显来检查查询正在打印的内容,并且内容正确(列出了正确的列名(由下拉列表和输入的值指定).@syn_p所以你似乎没有合适的数据。