执行Sql查询时无法获得正确的结果

时间:2019-02-22 08:35:40

标签: php

我想如果执行sql查询,然后给count表示结果1,那么它将重定向到profile.php,否则将重定向到候选人.php

<?php include "includes/header.php";?>

<?php
 $email=$_SESSION['email'];

$link = mysqli_connect("localhost", "root", "", "hr");
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}
  $sql = "SELECT * FROM candidate_registration WHERE resume IS NULL && email='$email'";
  if(mysqli_query($link, $sql)==true){
      header('Location:candidateprofile.php');
  }
else if(mysqli_query($link, $sql)==false){
    header('Location:user\profile.php');
}

1 个答案:

答案 0 :(得分:2)

您的查询应该像这样

SELECT count(*) AS counter FROM candidate_registration WHERE resume IS NULL && email='$email'

此后,您必须检查计数记录的值是什么。

根据您的请求,如果它发现至少1条记录,则会将其指向profile.php,否则将指向candidateprofile.php

    $result = mysqli_query($link, $sql);
    $row = $result->fetch_row();

    if($row[0]>0){
     header('Location:user\profile.php');
    }
    else{
      header('Location:candidateprofile.php');
    }

基本上,您想 COUNT 条记录。执行此操作的语句始终为true,因为空的mysql返回仍然有效。因此,检查结果是否为true实际上总是会返回true。

提示:您的代码已接受SQL注入。了解有关使用准备好的语句的信息,这样您就不会遇到“意外”问题。