MySQL:筛选结果的查询

时间:2018-11-12 17:47:22

标签: php mysql

我希望我可以进行查询以过滤结果。当我单独发出此请求时,它会起作用:

SELECT * FROM products_details WHERE active = '1' AND category LIKE '% Phobies%';

但是在我的代码中,当进行测试时,每次都会出现此错误:

  

致命错误:未捕获的PDOException:SQLSTATE [42S22]:列不   找到的:C:\ laragon \ www中的``where子句''中的1054未知列   \ tresorsdufutur \ ajax.php,第36行

但是我的查询中没有IN,所有术语都来自同一列。我真的找不到或找不到我的错误。这是我的代码

$ query = "SELECT * FROM products_details WHERE active = '1'";

if (isset ($ category) &&! empty ($ category)) {
$ categorydata = implode ("','", $ category);
$ query. = "AND product_category LIKE (`$categorydata`) ";
}

enter image description here

1 个答案:

答案 0 :(得分:0)

似乎是一些可能引起问题的东西

  1. 您似乎在要串联的查询的两个部分之间缺少空格
  2. 您在查询的后半部分使用`作为引号
  3. 自从我开始使用PHP已经有一段时间了,但是我认为您需要连接$categorydata

尝试一下

   $query = "SELECT * FROM products_details WHERE active = '1'";

   if (isset($category) && !empty($category)) {
     $categorydata = implode ("','", $category);
     $query. = " AND product_category IN ('". $categorydata. "') ";
   }