2014-12-10 4 views
0

사용자 ID가 데이터베이스에 이미 있는지 확인하려고합니다. 그러나 어떤 이유로 그것은 작동하지 않습니다. 나는 다른 해결책을 시도했지만 모두 실패했습니다.데이터가 데이터베이스에 이미 있는지 확인하십시오.

db_connect.php가 정상적으로 작동하고 있습니다. 다시 확인했습니다!

create_user.php

<?php 

$response = array(); 

if (isset($_POST['user_id'])){ 

     $id = $_POST['user_id']; 
     $fullName = $_POST['user_fullName']; 
     $firstName = $_POST['user_firstName']; 
     $lastName = $_POST['user_lastName']; 
     $birthday = $_POST['user_birthday']; 
     $friends = $_POST['user_friends']; 
     $totalFriends = $_POST['user_totalFriends']; 
     $email = $_POST['user_email']; 
     $gender = $_POST['user_gender']; 
     $likes = $_POST['user_likes']; 
     $events = $_POST['user_events']; 
     $hometown = $_POST['user_hometown']; 

    require_once __DIR__ . '/db_connect.php'; 

    $db = new DB_CONNECT(); 

    $query = mysql_query("SELECT * FROM 'userData' WHERE 'id' = '$id'"); 
    $user_data = mysql_num_rows($query); 

    if(empty($user_data)) {   

     $result = mysql_query("INSERT INTO userData(id, fullName, firstName, lastName, birthday, friends, totalFriends, email, gender, likes, events, hometown) VALUES ('$id', '$fullName', '$firstName', '$lastName', '$birthday', '$friends', '$totalFriends', '$email', '$gender', '$likes', '$events', '$hometown')"); 

     if($result){ 
      $response["success"] = 1; 
      $response["message"] = "User successfully created"; 

      echo json_encode($response); 
     } 

     else{ 
      $response["success"] = 0; 
      $response["message"] = "Error occurred"; 

      echo json_encode($response); 
     } 
    } 

    else { 

     $response["success"] = 1; 
     $response["message"] = "User already in database"; 

     echo json_encode($response);    

    } 
} 

else{ 
    $response["success"] = 0; 
    $response["message"] = "Required userdata is missing"; 

    echo json_encode($response); 
} 

?>

음. 이 스크립트를 브라우저에서 실행하면 완벽하게 작동합니다. 내 안드로이드 애플 리케이션에서 실행할 때 항상 새로운 사용자를 만듭니다.

감사합니다. T

+0

'SELECT * FROM 'userData'WHERE 'id ''는 테이블과 컬럼 이름에 작은 따옴표를 제거합니다. –

+0

작동하지 않는 기능은 무엇입니까? 표시 할 수있는 오류 또는 설명 할 수있는 동작이 있습니까? – Erik

+0

SQL 인젝션을 읽어보십시오. –

답변

1

테이블 이름과 필드 주위에 작은 따옴표를 추가했습니다.

다시 틱으로 변경하십시오.

$query = mysql_query("SELECT * FROM 'userData' WHERE 'id' = '$id'"); 

업데이트로 : 또한

$query = mysql_query("SELECT * FROM `userData` WHERE `id` = '$id'"); 

, 그들은 보안상의 이유로 사용되지 않으며 이후 버전에서 제거 될 예정으로 mysql_로 * 기능을 사용하지 마십시오.

작은 따옴표는 사용자 입력 용입니다.

키워드/데이터베이스 이름/테이블 이름/필드 이름은 뒤로 틱으로 묶을 수 있습니다.

+0

고마워, 실제로 내 진드기에 문제가있었습니다. 하지만 여전히 내 문제를 해결하지 못합니다. 나는 나의 질문을 편집했다. – DevelopingBeaver

관련 문제