<分区>
我需要多一双眼睛来关注这个。任何帮助将不胜感激。这是一个非常简单的搜索查询,但无论出于何种原因,我都找不到错误。好吧,我知道错误在哪里。我就是无法克服它。不管怎样……
我从 POST 变量中获取搜索值,设置该变量,然后按如下方式设置列变量...
$term = "'%".$_POST['searchTerm']."%'";
$field = "columnName";
当我回应这些时,它们完美地出现了。因此,如果我在表单中键入“a”,我将回显“%a%”和 columnName。
然后我准备查询并按如下方式绑定(bind)参数...
$suquery=$dbCon->prepare("select * from Table where ? LIKE ?");
$suquery->bind_param('ss', $field, $term);
$suquery->execute();
结果总是返回 0 行。当我玩这个时,我发现两个绑定(bind)参数都没有正常工作,即使它按应有的方式回显。例如,当我更改查询以便对列进行硬编码并且仅绑定(bind)搜索词时......
$suquery=$dbCon->prepare("select * from Table where columnName LIKE ?");
$suquery->bind_param('s', $term);
$suquery->execute();
我仍然得到零返回行。这告诉我即使 $field 回显为 '%a%' 某些东西仍然关闭。我真的很茫然。同样,当我硬连接搜索词并绑定(bind)列时......
$suquery=$dbCon->prepare("select * from Table where ? LIKE '%a%'");
$suquery->bind_param('s', $field);
$suquery->execute();
我返回的行太多了。它实际上是从表中提取行,其中任何列中的值都包含字母“a”。因此,列或术语都没有正确绑定(bind)。五月天!