Php sql查询中避免被零除的变量的任何值

Php sql查询中避免被零除的变量的任何值,php,mysql,pdo,divide-by-zero,Php,Mysql,Pdo,Divide By Zero,我想让用户过滤结果 为此,我有几个下拉列表,默认设置为“全部”。这些字段中的值通过POST方法发送到php,然后我继续: if ($variable == "All") { $variable = '%'; } 然后在PDO语句中,WHERE子句如下所示: WHERE field LIKE :variable 之后,我通过数组传递变量 我得到一个被零除的错误,这很奇怪,因为当我用 field LIKE '%' 一切都很好 谢谢你的帮助,非常感谢,因为我已经尝试了很多方法来解决这个问题 而不

我想让用户过滤结果

为此,我有几个下拉列表,默认设置为“全部”。这些字段中的值通过POST方法发送到php,然后我继续:

if ($variable == "All") {
$variable = '%';
}
然后在PDO语句中,WHERE子句如下所示:

WHERE field LIKE :variable
之后,我通过数组传递变量

我得到一个被零除的错误,这很奇怪,因为当我用

field LIKE '%'
一切都很好


谢谢你的帮助,非常感谢,因为我已经尝试了很多方法来解决这个问题

而不是在以下情况下添加大量无用的

field1 LIKE :value1 OR field2 LIKE :value2 OR field3 LIKE :value3
生成一个类似

field1 LIKE '%' OR field2 LIKE '%' OR field3 LIKE '%actual filter%'

这只会导致查询的执行时间更长。您应该编写只在设置过滤器时添加过滤器的条件。

被零除的错误实际上是因为我的SQL查询包含一个CONCAT(名称,“%”),它适用于SQL,但php无法很好地解释

相反,CONCAT(名称,“%”)工作正常


新手失误

你能再发一些代码吗?我很确定这个错误在别的地方。被零除的错误几乎肯定在别的地方。谢谢你的回答。我没有提交完整的代码(太长了!)。但问题不是我想的那样。下面是我的答案