2016-06-27 2 views
0

Я думаю, как я могу проверить, существует ли моя запись, выполняющая необработанные SQL-запросы. Я попытался использовать функцию is_null, но это не работает для меня. Поэтому, когда я пытаюсь выбрать неправильные значения и нажав кнопку отправки, он возвращает мне обычный текст «Успех» в браузере.Как проверить, существует ли запись в базе данных

public function readEmployeeRecords() 
{ 
    $users = DB::select('select * from users where username = ?', [1]); 

    if(is_null($users)) 
    { 
     return ('Failed'); 
    } 
    else 
    { 
     return('Success'); 
    } 
} 

Форма

<form class = "form-inline" role = "form" method = "post" action = "{{ route ('account.accountSearch') }}"> 

<div class = "form-group"> 

    <input type = "text" name = "search" class = "form-control" placeholder = "Employee username"> 

</div> 

<button type = "submit" class = "btn btn-default">Search</button> 
<input type = "hidden" name = "_token" value = "{{ Session::token() }}"> 

</form> 
+1

вы можете 'var_dump ($ users)' видеть, что возвращается и проверять его. – postrel

+0

Есть ли причина, по которой не используется ORM, построенная таким образом, как «первая»? –

ответ

-1

Попробуйте использовать

если (is_null ($ пользователей) || $ пользователей = "") {

0

Используйте SELECT EXISTS(your subquery):

public function readEmployeeRecords() 
{ 
    $users = DB::select('SELECT EXISTS(SELECT * FROM users WHERE username = ?)', [1]); 

    if (!$users[0]) { 
     return ('Failed'); 
    } 
    else { 
     return('Success'); 
    } 
} 

Моим первоначальным ответом было использование COUNT(*), что логически должно было сработать. Тем не менее, я подозреваю, что одна «запись» всегда возвращалась, независимо от фактического счета.

+0

Он все еще печатает мне другое условие брата. – Francisunoxx

+0

@Francisunoxx Не бросай меня, если ты меня не знаешь :-) ... теперь работаю над обновлением. –

+0

Оцените свое время. Но все же он возвращает мне «Успех». – Francisunoxx

0

В документе Laravel 5.2 documentation говорится: «Метод select всегда возвращает массив результатов». Таким образом, вы могли бы использовать count(), чтобы увидеть, если есть какие-либо результаты в массиве:

public function readEmployeeRecords() 
{ 
    $users = DB::select('select * from users where username = ?', [1]); 

    if (! count($users)) { 
     return ('Failed'); 
    } 

    return ('Success'); 
} 

is_null() проверяет, является ли переменная NULL. Пустой массив не равен NULL

+0

Я думаю, что это не найти правильные значения в моей базе данных.Я пробовал это, но возвращает сообщение «Успех». – Francisunoxx

+0

@Francisunoxx Можете ли вы var_dump ($ users) и сообщить мне, что он печатает? – postrel

+0

Я положил внутри метод '! count'' var_dump ($ users) 'и дает мне вывод' array (0) {} 'в любых значениях, которые я выбираю. – Francisunoxx

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