如何使用laravel在数据库中存储变量

时间:2016-06-30 06:39:09

标签: php mysql laravel

我想在数据库中存储一个具有特定值的变量,当用户再次单击它时,它会使用新值更新数据库列。

我的代码

if(isset($_REQUEST['submit1'])) {

    if ( $submit[msurf] >= $msurfclicks ) {
        $sql=$Db1->query("INSERT INTO d_bonus VALUES('$userid','0.02',NOW())"); 
        echo "success";
    }
    else {
       echo "wrong";
    }
    header("location:".$_SERVER['PHP_SELF']);
}

2 个答案:

答案 0 :(得分:0)

正如评论中所提到的,我认为你应该从基本的laravel教程开始,以获得有关基本概念的更多知识,但是这里是你如何解决问题。

假设您有一个带有user_id和“amount”的表“d_bonus”

// get current values
$amount = DB::table('d_bonus')->where('user_id', Auth::user()->id)->first();

// increase amount
$amount += 2;

// store new amount
DB::table('d_bonus')->where('user_id', Auth::user()->id)
            ->update(['amount' => $amount]);

// redirect
return redirect('/my-route');

别忘了添加use Auth;use DB;

但是,我建议在用户和课程之间建立关系以便了解这一点。然后,您无需直接使用DB

<强>更新

要创建一个调用此按钮的按钮,您至少需要一个调用此代码的路径

e.g。

Route::get('clicked-my-button', function() {
   // put code here, dont forget to add facaeds in header
   // better use a controller instead of a function within your routes!
});

您的表单就像

 <form action="/clicked-my-button" method="GET">
     {{csfr_field()}} <!-- hopefully you are using blade -->
     <input type="submit" value="submit" />
 </form>

答案 1 :(得分:0)

如果您为表使用model,则可以使用firstOrCreate或firstOrNew方法进行工作。

// Retrieve the flight by the attributes, or create it if it doesn't exist...
$flight = App\Flight::firstOrCreate(['name' => 'Flight 10']);

// Retrieve the flight by the attributes, or instantiate a new instance...
$flight = App\Flight::firstOrNew(['name' => 'Flight 10']);

对于mor信息:

https://laravel.com/docs/5.1/eloquent