首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP搜索栏用于过滤NULL上的HTML表格分隔符

问PHP搜索栏用于过滤NULL上的HTML表格分隔符
EN

Stack Overflow用户
提问于 2018-02-08 22:26:15
回答 1查看 46关注 0票数 0

我有一个由mysql数据库填充的简单html表,以及一个用php创建新查询的函数,然后将其加载到查询中,该查询用于填充表,作为一种过滤方式。问题是,当我的数据库中有一个NULL值而不只是一个空值时,它会中断语句。

下面是用于生成SQL的值,该SQL将在过滤后填充表:

代码语言:javascript
复制
<?php
  if(isset($_POST['search'])) {
      $valueToSearch = $_POST['valueToSearch'];

      $query = "SELECT * FROM PatientEventLog WHERE CONCAT(`patientEventLogID`, `patientEventID`, `patientID`, `eventCreatorID`, `eventEdited`, `antibiotic`, `waterBroke`, `vertex`, `cervixDilation`, `effacedPercent`, `station`, `membranes`, `analgesia`, `augment`, `notes`, `visible`) LIKE '%" . $valueToSearch ."%'";
      echo "value to search:   \n";
      echo $valueToSearch;
      echo "\n \n       above search resluts";
      echo $query;
      echo "below search results";
      $search_result = filterTable($query);

  } else {
    $query = "select * from PatientEventLog";
    $search_result = filterTable($query);

  }

  function filterTable($query) {
    $connect = mysqli_connect("localhost", "root", "GMd-eUJ-L6m-RxF", "lndappDB");
    $filter_results = mysqli_query($connect, $query);
    echo $filter_results;
    return $filter_results;

  }
?>

为什么like语句不能提取这些NULL值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-08 22:34:42

使用COALESCE操作符:

代码语言:javascript
复制
$query = "SELECT * FROM PatientEventLog 
  WHERE CONCAT(
  COALESCE(`patientEventLogID`,''), 
  COALESCE(`patientEventID`,''), 
  COALESCE(`patientID`,''), 
  COALESCE(`eventCreatorID`,''), 
  COALESCE(`eventEdited`,''), 
  COALESCE(`antibiotic`,''), 
  COALESCE(`waterBroke`,''), 
  COALESCE(`vertex`,''), 
  COALESCE(`cervixDilation`,''),
  COALESCE(`effacedPercent`,''), 
  COALESCE(`station`,''), 
  COALESCE(`membranes`,''), 
  COALESCE(`analgesia`,''), 
  COALESCE(`augment`,''), 
  COALESCE(`notes`,''), 
  COALESCE(`visible`,'')
) LIKE '%" . $valueToSearch ."%'";

但是为了避免MySQL注入,最好使用$valueToSearch作为参数,下面是一个示例:How can I prevent SQL injection in PHP?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48687790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档