php - mysqli_query() 总是返回真

标签 php mysql mysqli

<分区>

这是我的表格:

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <form action="register_ajax.php" method="get">
    <input type="text" name="email">
    <input type="submit" value="test">
    </form>
  </body>
</html>

这是我的 php 代码:

<?php
    $dbc = mysqli_connect("localhost","root","*******","continental_tourism") OR die(mysqli_connect_error());
    $email = $_GET['email'];
    $query = "SELECT email FROM customer_info WHERE email = '$email' ";
    $r = mysqli_query($dbc, $query) OR die(mysqli_error($dbc));
    if($r)
        echo "Email address exists!";
    else
        echo "sss";
?>

如果我输入正确的(数据库中的现有电子邮件)$r 为真。但是,如果我输入不存在的电子邮件,那么 $r 也为真。这是为什么?基本上我想检测空集。我该怎么做?

谢谢!

最佳答案

$r 只有在出现 SQL 错误时才会为 false。否则它将始终返回一个对象,即使您的 SELECT 语句没有返回任何行也是如此。

使用mysqli_num_rows()计算返回的行数。零表示没有人在使用该电子邮件地址。

if(mysqli_num_rows($r))
    echo "Email address exists!";
else
    echo "sss"; 

关于php - mysqli_query() 总是返回真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10194442/

相关文章:

php - 如何通过 OAuth 登录以便 cron 作业可以运行

mysql - 如何在 Unix 上执行存储过程 SQL (MySQL)

mysql - 如何在mysql中存储存储过程的返回值

php - 如何在 PHP 错误日志文件中获取命令行错误

java - PHP 和 Android 上的椭圆曲线密码学

php - 如何在mysql中仅通过一次更改添加重复记录而其他字段为零

php - mysql查询问题,如何显示值

php mysqli_fetch_array 返回 $name 结果为 'name'

php - 使用 mysql 和 php 选择以相同 4 位数字结尾的行进行分组

mysql - 如何从列中存储为 XML 的列表中链接带有 id 的表