【发布时间】:2015-08-02 06:12:41
【问题描述】:
我有一个用 PHP 处理的 HTML 表单。
表单中的输入用作 SQL WHERE 子句中的条件。
当没有输入时,WHERE 子句查找空字符串并且不会返回任何内容。相反,我想返回所有行。
如何做到这一点?我考虑过使用 LIKE 代替,但我只想在确实有输入时匹配精确的输入。
要明确:
我想检查存储输入的变量是否为空。如果是这样,我想返回所有行。
我想知道是否可以在 SQL 中执行此类操作而无需更改语句。相反,只需更改变量即可。
请注意,可以有多个输入字段。
编辑:
忽略安全风险的可能性。是否有一个 SQL 命令可以在不更改查询本身的情况下实现此目的,而只需更改变量?作为记录,我已经在查询之前检查变量是否为空字符串。此外,如果我正在检查变量是否为空并且我正在做适当的验证,那么安全风险会在哪里?
【问题讨论】:
-
您所描述的内容听起来像是等待发生的 SQL 注入
-
先检查表单的输入?根据字符串是否为空(您还应该运行其他验证),运行获取所有行的 SQL 查询或将输入用作 WHERE 子句中的变量。
-
过于宽泛且不清楚。
-
@Fred-ii-。见编辑。
-
你在下面有一个答案/编辑:现在有几个。