如果搜索未找到,我该如何退货?

时间:2015-03-29 16:37:24

标签: php mysqli

我不知道这是不是很愚蠢。但我无法弄明白。我有以下查询:

 include 'db.php';
  if(isset($_POST['search']) && !empty($_POST['searchQuery'])){
      $name = $_POST['searchQuery'];
      //-query  the database table
      $sql="SELECT * FROM users WHERE  name LIKE '%" . $name . "%'";
      $result=mysqli_query($db, $sql);

}

这将从表单输入中找到匹配项,以便稍后使用mysqli_fetch_array()并在循环后显示结果。但我无法弄清楚用户输入的字符串是否与表格不匹配,我如何向他们展示他正在搜索的内容是否无法找到?

1 个答案:

答案 0 :(得分:0)

确保使用mysqli_real_escape_string清理变量$name

要检查是否找不到结果,您需要使用mysqli_num_rows并检查它是否为零。

示例

include 'db.php';
if(isset($_POST['search']) && !empty($_POST['searchQuery'])){
   $name = mysqli_real_escape_string($db,$_POST['searchQuery']);

   $sql="SELECT * FROM users WHERE  name LIKE '%{$name}%'";
   $result=mysqli_query($db, $sql);
   if($result && mysqli_num_rows($result)) {
      // Success and Results
   }else{
      // Failed OR No Results
   }
}

为什么要使用mysqli_real_escape_string

使用mysql_real_escape_string非常重要,否则任何用户都可以执行SQL注入。 SQL注入是指用户可以修改SQL查询以泄漏或删除信息。