【问题标题】:what is the code in php to check if user already Exist or not? [duplicate]php中检查用户是否已经存在的代码是什么? [复制]
【发布时间】:2015-02-04 08:44:07
【问题描述】:

我是 php 和 mysql 的新手。我正在尝试检查用户是否已经被占用。如果它被采取,那么它不会添加到数据库中。但是,我尝试了很多代码来完成这个技巧,但我使用的代码都没有工作。我不确定我做错了什么。这是我现在拥有的:

<?php

include 'db_settings.php';

db_connect();

//Escape variables for security
$user = mysqli_real_escape_string($con, $_POST['user']);
$pass = mysqli_real_escape_string($con, $_POST['pass']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$sql="INSERT INTO users (user, pass, email)
        VALUES ('$user','$pass', '$email')";


if (!mysqli_query($con,$sql)) {
    die('Error: ' . mysqli_error($con));
}

echo "1 record added</br>";

mysqli_close($con);

echo "<a href='sign-up.html'>sing-up again!</a></br>";
echo "<a href='index.html'> Go Back Home </a>";

?>`

我知道这个代码没有检查用户是否已经被使用的功能,因为我删除了所有关于它的代码。所以如果有可能,如果你们能帮助我,我将不胜感激。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    您的代码似乎没问题 做一件事在你的 mysql 控制台或 phpMyadmin 上运行下面的代码

    ALTER TABLE  `users` ADD UNIQUE (
    `user`
    );
    

    【讨论】:

      【解决方案2】:

      您需要将数据库中的结果与 Select 查询匹配,where 子句中的条件取决于您要匹配记录的依据。所以你可以尝试这样的事情

      $query = "SELECT email,user FROM users where user='$user' and email='$email' ";   
      $result = mysql_query($query);    
      if (mysql_num_rows($result)) {    // user already exists   }    
      else {     // Insert query    }
      

      【讨论】:

        【解决方案3】:

        您需要先执行一个选择查询,该查询将使用发布的电子邮件/用户名获取用户,并检查结果中是否出现任何记录。

        只有在那之后才会触发插入查询。

        $sql = "SELECT email FROM users where email='".$email."'";
        $result = mysqli_query($con, $sql);
        
        if (mysqli_num_rows($result) > 0) {
          //user already exists
        }
        

        如果您不想在重复记录的情况下执行任何操作,还有另一种替代方法。

        使用INSERT...IGNORE它不会在重复时插入记录。

        【讨论】:

          【解决方案4】:

          你应该试试这样的。

          <?php
          include "db_setting.php";
           $user = $_POST['user'];
           $pass = $_POST['pass'];
           $email = $_POST['email'];
          
          $check = mysql_query("select * from registration_table where username = $user");
          $check_user = mysql_num_row($check);
          
          if($check_user > 0)
          {
          echo "This username already exists";
          }else
          {
          
          mysql_query("insert INTO registration_table ('user','pass','email') VALUES ($user,$pass,$email)");
          }
          

          【讨论】:

            猜你喜欢
            • 2015-03-04
            • 2015-05-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多