2014-12-10 20 views
0

Я пытаюсь проверить, существует ли идентификатор пользователя в базе данных. Но по какой-то причине это не сработает. Я пробовал разные решения, но все провалилось.Проверка наличия данных в базе данных

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

?>

Ну. Если я запустил этот скрипт в браузере, он отлично работает. Когда я запускаю его в своем приложении для Android, он всегда создает нового пользователя.

Спасибо! 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

Смежные вопросы