2011-11-04 2 views
2

Можно создать дубликат:
How do I update if exists, insert if not (aka upsert or merge) in MySQL?Как проверить, если значение уже существует в базе данных MySQL

Я знаю, что это довольно простой .., но по какой-то причине это не работает для меня. У меня есть форма, которая хранит идентификатор пользователя Facebook, чтобы проверить, не отправили ли они форму. У меня есть форма, которая автоматически вводит идентификатор пользователя в базу данных. Его просто эта часть проверки, если значение идентификатора пользователя существует в базе данных, которая меня отключает.

Вот мой код ....

$user_id = 1234567890; 

$checkUserID = mysql_query("SELECT fbUserID from submissions WHERE fbUserID = '$user_id'"); 

if ($checkUserID) { 
echo "GTFO BRO"; 
} 

Всякий раз, когда я "эхо" от переменной $ checkUserID я получаю это возвращается .. "идентификатор ресурса # 9"

+1

Попробуйте 'if (mysql_num_rows ($ checkUserID)> 0)'! – ComFreek

+0

Cba ответить в полном объеме, так что просто комментарий для меня. Но вы выполняете запрос. Ответ * любого * запроса всегда является ресурсом. (при использовании mysql_ *). Затем вам нужно будет получить строки из этого запроса или получить количество строк в этом запросе. Кроме того, не используйте mysql_ *. Это ужасно. Используйте PDO. – Layke

+3

LOl @ gtfo bro. –

ответ

12

mysql_query возвращает ресурс содержащий результат запроса, вы должны использовать что-то вроде этого:

$user_id = 1234567890; 

$checkUserID = mysql_query("SELECT fbUserID from submissions WHERE fbUserID = '$user_id'"); 

if (!$checkUserID) { 
    die('Query failed to execute for some reason'); 
} 

if (mysql_num_rows($checkUserId) > 0) { 
    echo "User id exists already."; 
    $user = mysql_fetch_array($checkUserId); 
    print_r($user); // the data returned from the query 
} 
0

Я думаю, что строка запроса неверна. Если вы используете двойные кавычки, вы должны изменить его на

.... WHERE fbUserId = '{$user_id}'" 

или вы должны сцепить его

..... WHERE fbUserId = '" . $user_id . "'" 
+1

Конкатенация в строки запроса просто требует проблем с SQL-инъекциями. –

-1

попробовать следующий фрагмент кода:

$checkUserID = mysql_query("SELECT fbUserID from submissions WHERE fbUserID = '$user_id'"); 

while($test = mysql_fetch_array($checkUserID)) 

if ($test) { 
echo "GTFO BRO"; 
} 

Я надеюсь, что это сработает правильно для вас.

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