php laravel db增删改查(使用sql文)

参考https://qiita.com/Yorinton/items/3d2e3c283b4cd8dbc955
1,首先配置/.env文件(也可配置/config/database.php),sample如下

DB_CONNECTION=pgsql
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=db名
DB_USERNAME=db用户名
DB_PASSWORD=db密码

2,编写/routes/web.php

Route::group(['prefix' => 'user'], function () {
    Route::get('/get', [TestController::class, 'get']);
    Route::get('/del', [TestController::class, 'del']);
    Route::get('/update', [TestController::class, 'update']);
    Route::get('/add', [TestController::class, 'add']);
    Route::get('/stmt', [TestController::class, 'stmt']);
});

3,编写/app/Http/Controllers/TestController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class TestController extends Controller
{
    //http://localhost:3000/public/user/add?name=gg
    public function add(Request $request)
    {
        $db = DB::table('users');
        //插入多条数据,返回bool
        //写法1
        // $result=$db->insert([
        //     ['name'=>$request->input('name', 'kitty1'),'age'=>1],
        //     ['name'=>$request->input('name2', 'kitty2'),'age'=>2],
        // ]);
        //写法2
        $result = DB::insert('insert into users (name,age) values (?,?),(?,?)', [$request->input('name', 'kitty1'), 1, $request->input('name2', 'kitty2'), 2]);
        echo  $result . '<br/>';
        //插入一条数据,返回其主键
        $newId = $db->insertGetId(['name' => $request->input('name3', 'kitty3')]);
        echo $newId;
    }

    //http://localhost:3000/public/user/del?id=37
    public function del(Request $request)
    {
        $result = DB::delete('delete from users WHERE age = ?', [$request->input('age', 0)]);
        echo  $result . '<br/>';
    }

    //http://localhost:3000/public/user/update?id=36&name=john
    public function update(Request $request)
    {
        $result = DB::update('update users set name = ? where age = ?', [$request->input('name'), $request->input('age')]);
        echo  $result . '<br/>';
    }

    //http://localhost:3000/public/user/get?id=36
    public function get(Request $request)
    {
        $users = DB::select("SELECT * FROM users");
        var_dump($users);
        $user = DB::selectOne("SELECT * FROM users WHERE id = ?", [$request->input('id')]);
        echo '<br/>';
        var_dump($user);
    }
    
    //http://localhost:3000/public/user/stmt?sql=delete%20from%20users%20where%20id=41
    public function stmt(Request $request)
    {
        echo $request->input('sql') . '<br/>';
        $result = DB::statement($request->input('sql'));
        var_dump($result);
    }
}

传入到sql文的参数全写在[ ]里,且按sql文的?的顺序排列。

返回值

insert成功为true,失败为false
insertGetId成功为插入时的ID值
delete返回修改成功记录的条数
update返回修改成功记录的条数
select对象集合
selectOne单个对象
statement成功为true,失败为false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值