欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Laravel之DB类操作数据库(创建表、添加字段、创建控制器、添加数据、修改数据、删除数据、显示查询数据、返回ID的方法getId)

程序员文章站 2022-05-31 18:39:17
...

1、创建一张表(迁移文件)

在命令提示符中输入php artisan make:migration create_table_msgs --create=msgs命令
C:\wamp64\www\weibo>php artisan make:migration create_table_msgs --create=msgs

2、添加字段,找到database->migrations->下的迁移文件进行添加

public function up()
    {
        Schema::create('msgs', function (Blueprint $table) {
            $table->increments('id');
            $table->string('title',40);
            $table->text('content');
            $table->integer('stu');
            $table->timestamps();
        });
    }
然后输入命令C:\wamp64\www\weibo>php artisan migrate

3、创建控制器,Http->Controllers->

创建一个名为MsgController的控制器
在命令提示符中输入C:\wamp64\www\weibo>php artisan make:controller MsgController

4、路由响应方法

找到routes->web.php文件,输入
use DB;引入类
Route::get('msg/insert','aaa@qq.com');
Route::get('msg/edit','aaa@qq.com');
Route::get('msg/show','aaa@qq.com');
Route::get('msg/del','aaa@qq.com');

//返回ID的方法getId
Route::get('msg/getId','aaa@qq.com');

5、在控制器中输入方法、添加数据、返回ID的方法getId

1、添加数据
public function insert(){
    	$data = ['title'=>'Laravel DB Test','content'=>'方便使用sql查询','stu'=>'13'];
    	或者
    	$data = array(
    		array('title'=>'测试1','content'=>'测试1','stu'=>15),
    		array('title'=>'测试2','content'=>'测试2','stu'=>16),
    	);
    	DB::table('msgs')->insert($data);//msgs表名
    }
2、修改数据、increment增加,decrement减少
//修改数据
    public function edit(){
    	DB::table('msg')->where('id',1)->update(['title'=>'DB类之修改']);
DB::table('users')->where('id',1)->increment('age');//默认步长为1
DB::table('users')->where('id',2)->increment('age', 3); //第二个参数,指定步长
DB::table('users')->where('id',3)->decrement('age');
DB::table('users')->where('id',4)->decrement('age', 3)
    }
3、删除数据
public function del(){
    	DB::table('msgs')->where('id',1)->delete();
    	DB::table('msgs')->truncate();//清空表,删除所有行,并重置自动递增ID为零
    }
4、显示查询数据
//显示查询数据
    public function show(){
    	$res = DB::table('msgs')->get();
    	$res = DB::table('msgs')->where('id','>',3)->get();
    	$res = DB::table('msgs')->select('title')->get();//只查询单独的列
    	$res = DB::table('msgs')->where('id','>',3)->first();//只查询单独行
    	$res = DB::table('msgs')->where('id',3)->value('title');//只查询value值
    	
    	$res = DB::table('msgs')->pluck('title');//pluck方法获取一列的单个数据,结果为数组
    	foreach($res as $k => $v){
    		dump($v);
    	}
    	
    	$res = DB::select('select * from msgs');//用原生代码
    	dump($res);
    }
5、返回ID的方法getId
 public function getId(){
    	$data = ['title'=>'测试3','content'=>'测试3','stu'=>'17'];
    	$res = DB::table('msgs')->insertGetId($data);
    	dump($res);
    }
6、文档
第6章 DB类操作数据库
MVC 的架构,数据库的操作大部分应放在 Model 中,
但如果不用 Model,我们也可以用 laravel 的 DB 类操作数据库.
而且,如果某些极其复杂的sql,用 Model 已经很难表达,要手写sql.也需要用 DB 类去执行原生sql.
laravel 中 DB 类的基本用法:DB::table('users') 获取操作users表的实例.
6.1 insert 添加操作
插入单行,一维数组形式,数组的键就是表的字段,返回值为truefalse;
$row = ['titles'=>'哈哈','email'=>'aaa@qq.com'];
DB::table('goods')->insert($row);
插入多行 (多维数组)
$rows = array(
array('titles'=>'哈哈111','email'=>'aaa@qq.com'),
array('titles'=>'哈哈222','email'=>'aaa@qq.com')
);
DB::table('goods')->insert($rows);
插入后返回主键值 获取主键值,insertGetId()方法,(多维数组不行??)
$rows = array('titles'=>'哈sdak','email'=>'aaa@qq.com');
$id = DB::table('goods')->insertGetId($rows);
var_dump($id);
6.2 update 修改操作
典型修改
DB::table('users')->where('id', 1)->update(['age' => 19])
相当于sql:
update users set age=19 where id=1 ;
某字段在原基础上 增长或减少 increment/decrement
返回值是受影响的行数;
DB::table('users')->where('id',1)->increment('age');//默认步长为1
DB::table('users')->where('id',2)->increment('age', 3); //第二个参数,指定步长
DB::table('users')->where('id',3)->decrement('age');
DB::table('users')->where('id',4)->decrement('age', 3);
6.3 delete 删除操作
var_dump(DB::table('goods')->where('id' , '>' , 3)->delete());
//where 有三个参数时,其中第二个参数当做运算符
//返回受影响的行数
6.4 查找操作
注意 : 取出的数据 , 无论是单行还是多行 , 每一行数据都是以一个类似对象的形式组织的 .
不是关联数组 .
// select * from users;
DB::table('goods')->get();
// select * from user where id > 6
DB::table('goods')->where('id' , '>' 6)->get();
// select id,email from users where id > 6
DB::table('goods')->select('id','email')->where('id' , '>' 6)->get();
// select * from users where id=6 取出单行 , 返回
DB::table('goods')->where('id',6)->first()
//如果你不需要一整行数据,则可以使用 value 方法来从单条记录中取出单个值。此方法将直接返回字段的值:
$email = DB::table('users')->where('name', 'John')->value('email');
//你可以通过pluck方法获取一列的单个字段
$titles = DB::table('roles')->pluck('title');
foreach ($titles as $title) {
echo $title;
}

Laravel之DB类操作数据库(创建表、添加字段、创建控制器、添加数据、修改数据、删除数据、显示查询数据、返回ID的方法getId)
Laravel之DB类操作数据库(创建表、添加字段、创建控制器、添加数据、修改数据、删除数据、显示查询数据、返回ID的方法getId)
Laravel之DB类操作数据库(创建表、添加字段、创建控制器、添加数据、修改数据、删除数据、显示查询数据、返回ID的方法getId)

相关标签: Laravel