仅在设置了变量的情况下使用WHERE子句

index.php中的输入和脚本

<input type="text" class="filter" id="frClientName" name="cl_name">

<script>
    $(".filter").on('change keydown keyup', function(){
        var clname;
        clname = document.getElementById("frClientName").value;
        $("#spravaContent").load("php/search_results/sprava.php?cl_name=" + clname;
    });
</script>

php / search_results / sprava.php

$clname = '';
if ( isset ( $_GET['cl_name'] ) ) {
    $clname = $_GET['cl_name'];
}

$sql = ("
    SELECT * FROM `db`.`table`
    WHERE cl_full_name LIKE  '%".$_GET['cl_name']."%'
");

仅当变量不为空时,如何才能正确使用WHERE子句?谢谢你的指导。

编辑:

$sql = ("
    SELECT * FROM `db`.`table`
    ORDER BY {$oby} {$ohow}
    WHERE cl_full_name LIKE '%".$_GET['cl_name']."%'
    OR '' = '".$_GET['cl_name']."'
    LIMIT $start_sprava,$per_page_sprava
");
1吉x德

这有点骇人听闻,但我已经通过CASE声明处理了这种情况您评估您的论点,如果它不满足您所要求的条件,则使用一个明显为true的语句,例如1=1,这样做的最终效果是使WHERE子句的该部分不参与过滤结果集。

SELECT * 
  FROM `db`.`table`
 WHERE CASE WHEN TRIM('".$_GET['cl_name']."') IS NOT NULL THEN cl_full_name LIKE  '%".$_GET['cl_name']."%'
            ELSE 1=1
       END
 ORDER BY {$oby} {$ohow}
 LIMIT {$start_sprava}, {$per_page_sprava}
;

不要忘记管理您的输入,这样就不会遇到Little Bobby Tables问题。而且,ORDER BYandLIMIT子句通常位于该WHERE子句之后。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Ansible:仅在未定义的情况下设置变量

仅在设置了变量的情况下添加到数组

Switch语句在多种情况下会忽略Where子句

仅在尚未执行的情况下,使用p运行命令

Laravel 5.4在不使用where子句的情况下更新表中的所有记录

仅在设置了特定环境变量的情况下,如何才能要求在Django站点上进行管理员登录?

是否可以防止在没有WHERE子句的情况下执行UPDATE或DELETE语句?

prolog捕获仅在没有其他子句的情况下才是活动的所有子句

在不使用DISTINCT子句的情况下获得独特的结果

在字符串连接期间,仅在设置了变量的情况下如何添加定界符?

仅在列包含值的情况下使用SUBTOTAL

MS-ACCESS / SQL-如何在多种情况下应用where子句

ColumnSet Helpers-仅在默认情况下使用Raw

使用WHERE子句仅在数组字段内部仅包含一个元素的情况下检索结果

尝试仅在变量已设置为false的情况下运行代码

关键字“仅在条件成立的情况下使用”

仅在所有与第一个where子句匹配的行也与第二个匹配的情况下返回结果

是否可以在不使用where子句的情况下从2个表中进行选择?

为什么在多where子句起作用的情况下,内部联接查询不起作用

在这种情况下如何执行where子句?

仅在特殊情况下异步填充变量

在不中断表单发布的情况下以角度设置变量

在不使用全局变量的情况下使用Django信号设置变量

条件在何处子句的情况。如果仅在条件匹配的情况下使用过滤条件

仅在 R 块的情况下继承先前块中设置的变量(R 降价)

在某些情况下选择全部的 Where 子句

如何在不使用原始 SQL 字符串的情况下使用 Kentico Pages API 嵌套 WHERE 子句条件?

在没有 where 子句的情况下获取非零 id 计数

WHERE 子句在运行时确定,这可以在没有动态 SQL 的情况下使用 CASE 完成吗?