mysql:过滤结果的查询

dzhpxtsq  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(321)

这个问题在这里已经有答案了

在mysql中何时使用单引号、双引号和反引号(13个答案)
去年关门了。
我希望我能做一个过滤结果的查询。当我单独提出这个请求时,它就起作用了:

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

但在我的代码中,测试时,每次都会出现以下错误:
致命错误:未捕获的pdoexception:sqlstate[42s22]:找不到列:c:\laragon\www\tresorsdufutur\ajax.php第36行的“where子句”中的1054未知列“”
但我的查询中没有in,所有术语都来自同一列。我真的找不到我的错误。这是我的密码

  1. $ query = "SELECT * FROM products_details WHERE active = '1'";
  2. if (isset ($ category) &&! empty ($ category)) {
  3. $ categorydata = implode ("','", $ category);
  4. $ query. = "AND product_category LIKE (`$categorydata`) ";
  5. }

ylamdve6

ylamdve61#

似乎有一些事情会引起问题
在连接的查询的两个部分之间似乎缺少一个空格
您在查询的后半部分使用了作为引号 我做php已经有一段时间了,但我认为您需要连接$categorydata` 试试这个

  1. $query = "SELECT * FROM products_details WHERE active = '1'";
  2. if (isset($category) && !empty($category)) {
  3. $categorydata = implode ("','", $category);
  4. $query. = " AND product_category IN ('". $categorydata. "') ";
  5. }

相关问题