Php MySQL:过滤结果的查询
我希望我能做一个过滤结果的查询。当我单独提出此请求时,它会起作用:Php MySQL:过滤结果的查询,php,mysql,Php,Mysql,我希望我能做一个过滤结果的查询。当我单独提出此请求时,它会起作用: SELECT * FROM products_details WHERE active = '1' AND category LIKE '% Phobies%'; 但在我的代码中,测试时,每次都会出现以下错误: 致命错误:未捕获PDOException:SQLSTATE[42S22]:列未捕获 在C:\laragon\www中的“where子句”中找到:1054未知列“” \第36行的tresorsdufutur\ajax.p
SELECT * FROM products_details WHERE active = '1' AND category LIKE '% Phobies%';
但在我的代码中,测试时,每次都会出现以下错误:
致命错误:未捕获PDOException:SQLSTATE[42S22]:列未捕获
在C:\laragon\www中的“where子句”中找到:1054未知列“”
\第36行的tresorsdufutur\ajax.php
但我的查询中没有IN,所有术语都来自同一列。我真的找不到我的错误。这是我的密码
$ query = "SELECT * FROM products_details WHERE active = '1'";
if (isset ($ category) &&! empty ($ category)) {
$ categorydata = implode ("','", $ category);
$ query. = "AND product_category LIKE (`$categorydata`) ";
}
似乎有一些事情可能会导致问题
$categorydata
$query = "SELECT * FROM products_details WHERE active = '1'";
if (isset($category) && !empty($category)) {
$categorydata = implode ("','", $category);
$query. = " AND product_category IN ('". $categorydata. "') ";
}
奇怪的是,在
$
和变量名之间使用空格字符。然而,$category
变量的值是什么?为什么在$categorydata
周围有反勾号?原始查询category LIKE…
php查询product\u category LIKE
这是两个不同的列名:-)请编辑您的问题以包含echo$query的输出代码>因此,我们看到了您用代码生成的查询。对于$和categorydata之间的空格,我复制查询是错误的。它应该是这样写的$categorydata:)我更正了我的代码,不幸的是它不起作用。我总是犯同样的错误。好吧,不管怎样,我不知道你在做什么,但看起来它可能会对SQL注入开放。考虑使用预先准备好的语句或ORM。