2014-12-06 5 views
1

저는 php와 mysql을 처음 사용했습니다. 사용자가 이미 찍혔는지 확인하려고합니다. 가져온 경우 데이터베이스에 추가되지 않습니다. 그러나이 트릭을 수행하기 위해 많은 코드를 시도했지만 사용 된 코드는 전혀 사용되지 않았습니다. 내가 뭘 잘못하고 있는지 모르겠다. 이것은 내가 지금 무엇을 :사용자가 이미 존재하는지 여부를 확인하는 PHP 코드는 무엇입니까?

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

?>` 

은 이미 촬영 한 경우 또는 그것에 대해 모든 코드를 삭제되지 때문에 사용자에 대한 검사 기능이없는이 코드를 알고있다. 그래서 만약 당신이 남자들이 나를 도울 수 있다면, 나는 그것을 고맙게 생각할 것입니다.

답변

1

코드는

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

먼저 게시 된 전자 메일/사용자 이름을 가진 사용자를 가져오고 결과에 레코드가 나타나는지 확인하는 선택 쿼리를 실행해야합니다.

그 후에 만 ​​삽입 쿼리를 실행하십시오.

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

if (mysqli_num_rows($result) > 0) { 
    //user already exists 
} 

중복 된 레코드의 경우 아무런 조치도 취하지 않으려면 하나 더 선택하십시오.

사용 INSERT...IGNORE 복제시 레코드를 삽입하지 않습니다.

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

$checkQuery = "SELECT * from users where user='".$user."';"; 
$result = mysqli_query($con,$checkQuery); 
if ($result) { 
    die("Username taken"); 
} else { 
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>"; 

?>` 
0

다음과 같이 시도해야합니다.

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

당신은 어디에서 선택 쿼리 및 조건에 데이터베이스에서 결과가 일치 할 필요 한 가지 당신의 MySQL의 콘솔이나 phpMyAdmin에에 아래의 코드를 실행 할 괜찮을 것 같다 절은 레코드와 일치시키려는 기준에 따라 다릅니다. 그래서이 같은 것을 시도 할 수 있습니다.

$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 }