php中检查用户是否已经存在的代码是什么?

php中检查用户是否已经存在的代码是什么?,php,mysql,Php,Mysql,我是php和mysql的新手。我正在检查用户是否已经被占用。如果它已被获取,则不会添加到数据库中。然而,我尝试了很多代码来实现这个技巧,但是我使用的代码都不起作用。我不确定我做错了什么。这就是我现在拥有的: <?php include 'db_settings.php'; db_connect(); //Escape variables for security $user = mysqli_real_escape_string($con, $_POST['user']); $pas

我是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>";

?>`

您需要首先执行select查询,该查询将获取带有已发布电子邮件/用户名的用户,并检查结果中是否出现任何记录

只有在这之后才会触发insert查询

$sql = "SELECT email FROM users where email='".$email."'";
$result = mysqli_query($con, $sql);

if (mysqli_num_rows($result) > 0) {
  //user already exists
}
如果您不想在重复记录的情况下执行任何操作,则还有一个备选方案


使用它将不会在复制时插入记录。

您需要首先执行select查询,该查询将获取具有已发布电子邮件/用户名的用户,并检查结果中是否出现任何记录

只有在这之后才会触发insert查询

$sql = "SELECT email FROM users where email='".$email."'";
$result = mysqli_query($con, $sql);

if (mysqli_num_rows($result) > 0) {
  //user already exists
}
如果您不想在重复记录的情况下执行任何操作,则还有一个备选方案


使用它不会在复制时插入记录。

您应该尝试类似的方法

<?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)");
}

你应该试试这样的方法

<?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)");
}

您的代码似乎很好
做一件事,在mysql控制台或phpMyadmin上运行以下代码

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

您的代码似乎很好 做一件事,在mysql控制台或phpMyadmin上运行以下代码

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

您需要将数据库中的结果与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    }

您需要将数据库中的结果与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    }