2016-07-04 53 views
0

這裏是我的代碼檢查字符串已在數據庫或不Laravel 5.2

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

現在我想用$get_token比較$string。如果它不在數據庫中,那麼它應該添加到值爲$string的數據庫。

我寫過這段代碼。

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

我怎樣才能比較我的字符串與每個已經在數據庫中的字符串。

謝謝

+0

你使用'Models'? –

+0

是的......我確實使用用戶模型。 –

+0

可能的重複:http://stackoverflow.com/questions/27095090/laravel-checking-if-record-exists – Aborted

回答

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 
} 

希望這個作品!


什麼是模型?

能言善辯的ORM包含Laravel提供了一個美觀,簡潔 ActiveRecord的實現與數據庫的工作。每個 數據庫表都有一個相應的「型號」,用於與該表進行交互 。模型允許您查詢表中的數據,如 以及在表格中插入新記錄。

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

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

} 
+0

'$ email_id = Input :: get('email_id'); $ api_token = str_random(50); (''email_id','')(012)(0)如果(User :: where('api_token','=',$ api_token) - > exists()){ $ get_api_token = User :: select('api_token') - =',$ email_id) - > get(); } 否則{ DB ::表( '用戶') - > insertGetId(陣列(//在數據庫 插入新用戶 'EMAIL_ID'=> $ EMAIL_ID, 'api_token'=> $ api_token )); } –

+0

這是我想要做的...如果我得到的數據庫中存在的令牌,然後返回給定的電子郵件ID的令牌,如果沒有,然後插入令牌給予email_id –

+0

你得到的錯誤,它的爲你工作還是沒有? –