【问题标题】:any value of the variable in sql query avoiding division by zero errorsql查询中变量的任何值避免被零除错误
【发布时间】:2013-03-13 22:25:52
【问题描述】:

我想让用户过滤结果。

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

if ($variable == "All") {
$variable = '%';
}

然后在 PDO 语句中,WHERE 子句是这样的:

WHERE field LIKE :variable

之后我通过数组传递变量

我得到一个除以零的错误,这很奇怪,因为当我使用硬编码 SQL 查询时

field LIKE '%'

一切都好……

感谢您的帮助,非常感谢,因为我一直在尝试多种解决方案!

【问题讨论】:

  • 你能再贴一些代码吗?我很确定错误在其他地方。
  • 除以零误差几乎肯定在别处

标签: php mysql pdo divide-by-zero


【解决方案1】:

而不是添加很多无用的 WHERE 条件,例如

field1 LIKE :value1 OR field2 LIKE :value2 OR field3 LIKE :value3

生成类似的查询

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

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

【讨论】:

  • 感谢您的回答。我没有提交整个代码(太长了!)。但问题不是我想的。在我的答案下方
【解决方案2】:

除以零错误实际上是因为我的 SQL 查询包含一个适用于 SQL 但 php 不能很好解释的 CONCAT(name,'%')。

相反,CONCAT(name, "%") 工作得很好......

菜鸟失误!

【讨论】:

    猜你喜欢
    • 2010-10-26
    • 1970-01-01
    • 2019-02-03
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    相关资源
    最近更新 更多