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 AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesDB;
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
下一篇:
批量赋予用户所有存储过程或函数的执行权限
