laravel基础课程---10、数据库基本操作(如何使用数据库)
一、总结
一句话总结:
1、链接数据库:.env环境配置里面
2、执行数据库操作:DB::table('users')->update(['votes' => 1]);
1、链接数据库(D:laravelyzmeduyzm2.env) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=yzm DB_USERNAME=root DB_PASSWORD=123
1、laravel数据库操作中的原生SQL语句?
根目录DB::下的(select、delete、insert、update方法)
运行声明:比如创建一个数据库:DB::statement("create database yzmedu");
1、查询数据 $data=DB::select('select * from user'); 2、删除数据 如果删除成功 返回影响行数、 var_dump(DB::delete('delete from user where id>5')); 3、增加数据 返回值bool 如果成功 true 失败 false var_dump(DB::insert("insert into user values(null,'123','123',0,'23131321')")); 4、修改数据 返回值 影响行数 var_dump(DB::update('update user set name="帅哥" where id>3')); 5、运行一段命令 DB::statement("create database yzmedu"); DB::statement("drop database yzmedu"); 6、事物机制 DB::beginTransaction(); 删除id=1数据 $a=DB::delete("delete from user where id=1"); 删除id=10数据 $b=DB::delete("delete from user where id=11"); if ($a && $b) { # code... 提交事务 DB::commit(); }else{ 回滚事务 DB::rollback(); }
2、laravel中的事务机制如何实现?
自动事务:DB::transaction(function () {
手动事务:和tp一样:DB::beginTransaction(); DB::commit(); DB::rollback();
自动事务
DB::transaction(function () { DB::table('users')->update(['votes' => 1]); DB::table('posts')->delete(); });
手动事务
6、事物机制 DB::beginTransaction(); 删除id=1数据 $a=DB::delete("delete from user where id=1"); 删除id=10数据 $b=DB::delete("delete from user where id=11"); if ($a && $b) { # code... 提交事务 DB::commit(); }else{ 回滚事务 DB::rollback(); }
3、laravel实现侧边栏你选哪一个那个就展开的效果?
可以获取url中的路由,然后根据路由用js判断哪一个展开:主要利用SERVER数组
4、如何实现登录成功返回原页面?
记录原页面的地址【SERVER数组里有】,登录之后,跳转到这样地址
5、laravel中文件上传的实质是什么?
move函数:将文件从临时目录移动到了我们需要放它的目录
6、laravel中ajax删除图片实例?
ajax请求是jquery完成的:注意表单请求要加上_token变量
控制器中不必判断是不是ajax请求:正常request对象获取参数即可
1、JQ // obj,id 接收参数 function del(obj,id){ // 发送ajax请求 // $.post(请求地址,传递参数,响应请求); // data可以随便命名 主要接收ajax返回的数据 $.post('/admin/pic/'+id,{'id':id,'_method':'delete','_token':'{{ csrf_token() }}'},function(data){ // 判断接收的数据如果1成功 0失败 if (data) { // 移除对应删除的数据 $(obj).parent().parent().remove(); // 获取总数条数 tot=Number($("#tot").html()); // 修改总数据条数 $("#tot").html(--tot); }else{ alert('删除失败'); } }); } 2、控制器 public function destroy(Request $request){ // 获取删除ID $id=$request->input('id'); // 查巡图片 $data=DB::select("select * from pic where id=$id"); // 删除操作 // 删除成功 返回值1 // 删除失败 返回值0 if (DB::delete("delete from pic where id=$id")) { # code... // 删除成功 删除图片 unlink("./Uploads/Goods/{$data[0]->img}"); return "1"; }else{ return "0"; } }
7、laravel中表单中{{ csrf_token() }}保护意义何在(所有的表单请求都要带上,无论是否是ajax)?
不受到 跨站请求伪造 (CSRF) 攻击
Laravel 提供简单的方法保护你的应用不受到 跨站请求伪造 (CSRF) 攻击。跨站请求伪造是一种恶意的攻击,它利用已通过身份验证的用户身份来运行未经授权的命令。