Echo不会显示条件是真还是假

时间:2014-06-21 18:15:45

标签: php jquery mysql ajax pdo

我想做的是,如果电子邮件为空,则不执行任何操作,如果条件为真,则回显1,如果条件为假,则回显0。

我的问题是,即使条件是真的,回声也不会显示出来,如果错误仍然不会显示回声。

<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "test";

$dbc = new PDO("mysql:host=" . $host . ";dbname=" . $db, $user, $pass);
$dbc->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

if(!empty(@$_POST['email'])) {

        $name = @$_POST['name'];
        $age = @$_POST['age'];
        $address = @$_POST['address'];
        $gender = @$_POST['gender'];
        $email = @$_POST['email'];

        $dupesql = "SELECT * FROM students WHERE email = :email ";

        $dupesql = $dbc->prepare($dupesql);
        $dupesql->bindParam(':email', $email);
        $dupesql->execute();
        $num_rows = $dupesql->rowCount(); 

        if($num_rows === 0) 
        {

        echo "1";
        $q = "INSERT INTO students(name, age, address, gender, email ) VALUES(:name, :age, :address, :gender, :email)";

        $query = $dbc->prepare($q);
        $query->bindParam(':name', $name);
        $query->bindParam(':age', $age);
        $query->bindParam(':address', $address);
        $query->bindParam(':gender', $gender);
        $query->bindParam(':email', $email);

        $results = $query->execute();

        }else{
        echo "0";
        exit;
        }   
}       

?>

2 个答案:

答案 0 :(得分:0)

您的情况不是检查电子邮件是否为空。它正在检查是否返回了任何行。您需要重新定位if语句的else部分,如下所示。

if(!empty(@$_POST['email'])) {
  // code here
  echo "1";
  // code here
}else{
  echo "0";
  exit;
}   

答案 1 :(得分:0)

您可能会从$dupesql->rowCount();返回错误的数据类型。尝试通过var_dump();编写变量或使用==的{​​{1}}。或者您也可以使用空===变量