Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检查数据库中是否存在记录_Php_Laravel_Laravel 5.2 - Fatal编程技术网

Php 如何检查数据库中是否存在记录

Php 如何检查数据库中是否存在记录,php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,我在想,如何检查我的记录是否存在并运行原始SQL查询。我尝试使用is_null函数,但它对我不起作用。因此,当我尝试选择错误的值并点击提交按钮时,它会在浏览器中返回“Success”纯文本 public function readEmployeeRecords() { $users = DB::select('select * from users where username = ?', [1]); if(is_null($users)) { retu

我在想,如何检查我的记录是否存在并运行原始SQL查询。我尝试使用is_null函数,但它对我不起作用。因此,当我尝试选择错误的值并点击提交按钮时,它会在浏览器中返回“Success”纯文本

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

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

试用

如果为空$users | |$users={

使用选择存在您的子查询:

我最初的答案是使用COUNT*,这在逻辑上应该是有效的。但是,我怀疑th0at始终会返回一条记录,而不管实际的计数是多少。

表示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

您可以使用var_dump$users查看返回的内容并对照它进行检查。有什么理由不像first一样使用ORM Build it选项吗?它仍然打印else条件bro。@Francisunox如果您不认识我,请不要bro我:-…现在正在为您进行更新。感谢您的时间。但它仍然会返回成功消息。我相信我向您提供的查询将按预期进行。您确定您的数据正确吗?我也相信您的答案。是的,我确定提供的数据正确。我没有在您的else条件下返回成功消息,而是将其更改为var_dump$users,并向我提供输出数组1{[0]=>objectstdClass172 1{[EXISTSSELECT*FROM users WHERE username=?]=>int0}}我想它在我的数据库中找不到正确的值。我尝试了这个方法,但返回了一条成功消息。@Francisunox你能给var_dump$users变量并告诉我它打印了什么吗?我把var_dump$users放入!count方法中,并给我输出数组0{}在我选择的任何值中。@francisunox在if语句之前调用它,它打印我的数组0{}失败,这是否意味着它在我的数据库中找不到值?
public function readEmployeeRecords()
{
    $users = DB::select('SELECT EXISTS(SELECT * FROM users WHERE username = ?)', [1]);

    if (!$users[0]) {
        return ('Failed');  
    }
    else {
        return('Success');
    }
}
public function readEmployeeRecords()
{
    $users = DB::select('select * from users where username = ?', [1]);

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

    return ('Success');
}