提问者:小点点

无法检查mysql中是否存在用户


我正在使用php在mysql注册用户,但在注册之前,我正在检查电子邮件,使用户与相同的电子邮件不能注册,但即使在检查条件后,一个以上的用户能够注册与相同的电子邮件。

下面是我的代码:

<?php
   require_once('dbconfig.php');
   $uid = $_POST['uid'];
   $name = $_POST['name'];
   $email = $_POST['email'];
   $row = "SELECT `email` FROM `Users` WHERE `email` = '$email'";
   $row_result = mysqli_query($con,$row);
   if(mysqli_num_rows($row_result)){
      echo  "User exists";
    }
  else{
     $sql = "INSERT INTO `Users` (`id`, `name`, `email`)
           VALUES ('$uid', '$name', '$email')";
   $result = mysqli_query($con,$sql);
   if($result){
       echo  "user created";
   }
   else{
       echo  "Unable  to authenticate";
      }
       mysqli_close($con);     
    }         
?>

请让我知道我做错了什么。任何帮助都将不胜感激。

谢谢


共2个答案

匿名用户

 $email = isset($_POST['email']) ? trim($_POST['email']) : '';
 $row = "SELECT `email` FROM `Users` WHERE `email` = 
     '".mysqli_real_escape_String($conn, $email)."'";

试试这个代码,也许会对你有帮助。 在phpmyadmin中运行query并查看响应,然后继续。 总是转义您的数据,当它发送到数据库,因为您是开放的Sql注入。 决不信任用户

匿名用户

您需要询问结果返回的行数是否超过0

if(mysqli_num_rows($row_result) > 0){
                               ^^^^^
      echo  "User exists";

    }