在Laravel 5.2中检查字符串是否已存在于数据库中

时间:2016-07-04 11:43:10

标签: php string laravel

这是我的代码

$string = str_random(20);
$get_token = DB::table('users')->select('token')-> get();

现在我想将$string$get_token进行比较。如果它不在数据库中,那么它应该添加到值为$string的数据库。

我已经写了这段代码。

if(strcmp($string , $get_token) !=0){
//add to DB
}

如何将我的字符串与已存在于数据库中的每个字符串进行比较。

谢谢

2 个答案:

答案 0 :(得分:2)

如果您使用的是模型,则可以运行以下代码:

$token = str_random(20); //makes an random string with 20 characters
//select all tokens in the User model where token = $token and count it
$get_token = User::where('token', $token)->count(); //laravel returns an integer

if($get_token == 0) {
    //the token doesn't exist
    //Run the create token code
} else {
    //Token exist
}

希望这有效!

什么是型号?

  

Laravel附带的Eloquent ORM提供了一个美丽,简单的   用于处理数据库的ActiveRecord实现。每   数据库表具有相应的“模型”,用于交互   那张桌子。模型允许您查询表中的数据,如   以及在表格中插入新记录。

更多信息:https://laravel.com/docs/5.2/eloquent

答案 1 :(得分:0)

如果$string没有退出,您可以在数据库中进行检查,然后您可以插入数据库。

看一下以下代码:

 $string = str_random(20);
 $get_token = DB::table('users')->where('token', '=', $string)->first();// get first record for that database.

 if(empty($get_token->token))
 {

 //if token not exit in database insert it into database.
  DB::table('users')->insert(
    array('token' =>$string )
  );

 }