5、连接数据库、新建数据表
laravel提供了三种操作数据库的方式
1、DB facade (原始查找) [f??sɑ?d]
2、查询构造器
3、Eloquent ORM [?el?kw?nt]
连接数据库配置
1、config/database.php 保存连接数据库的账号密码
2、但是账号密码指向的是 app/.env 文件
3、所以修改数据地址,数据库名,密码等操作都在 .env 文件完成
4、修改完后重启下 php artisan serve
DB facade (原始查找) [f??sɑ?d]
使用DB facade前,先在控制器里进行引入
use Illuminate\Support\Facades\DB; //使用数据库前,先进行数据库的引入
控制器:增删改查
public function shujvku(){
//查
$shujv = DB::select(‘select * from news‘);
var_dump($shujv); //输出数据,格式乱
dd($shujv); //输出数据,格式整齐
//增
$bool = DB::insert(‘insert news(title,author) values(?,?)‘,[‘良哥‘,‘好好‘]);
// 两个问好对应后面数组的两个值。若不加?,sql里面的值是写死的;后面数组里面的值可以动态更改
// 增加成功后会返回一个布尔值
var_dump($bool); //布尔值为true,即增加成功
//改
$gai = DB::update(‘update news set title=? where author=?‘,["名利阿斯蒂芬肯德基顺利打开附件",‘好好‘]);
var_dump($gai); //修改成功后,返回修改了多少行
//删
$san = DB::delete(‘delete from news where Id>?‘,[10]);
var_dump($san); //删除成功后,返回删除了多少行
}配置好路由即可将数据的增删改查操作
查询构造器
使用查询构造器前,先在控制器里进行引入
use Illuminate\Support\Facades\DB; //使用数据库前,先进行数据库的引入
查询构造器:添加数据
public function index(){
//查询构造器:增
$bool = DB::table(‘news‘) -> insert([‘title‘ => ‘题目深刻的房间里‘ , ‘author‘ => ‘作者顺利打开附件‘]);
var_dump($bool); //插入数据,返回布尔值
//插入成功后,返回该条记录的id
$id = DB::table(‘news‘) -> insertGetId([‘title‘ => ‘题目深刻11111‘ , ‘author‘ => ‘作者顺利打开11111‘]);
var_dump($id); //插入数据,成功后,返回该条记录的id
//插入多条数据
$duo = DB::table(‘news‘) -> insert([
[‘title‘ => ‘111111111111111‘ , ‘author‘ => ‘1111111111111111‘],
[‘title‘ => ‘22222222222222‘ , ‘author‘ => ‘22222222222222222‘]
]);
var_dump($duo); //插入后返回布尔值
}查询构造器:更新数据
public function index(){
//查询构造器:更新数据
$num = DB::table(‘news‘)
->where(‘Id‘,14)
->update([‘title‘ => ‘更新11111111‘]);
var_dump($num); //成功后返回影响的行数
}对某些字段进行自增自减,id除外
public function index(){
//给某个字段的内容全部自增1
$num1 = DB::table(‘news‘) -> increment(‘count‘); //不能对Id进行自增
//给某个字段的内容全部自增3
$num2 = DB::table(‘news‘) -> increment(‘count‘,3);
var_dump($num1,$num2); //返回受影响的行数
//给某个字段的内容全部自减1
$num3 = DB::table(‘news‘) -> decrement(‘count‘); //不能对Id进行自减
//给某个字段的内容全部自减3
$num4 = DB::table(‘news‘) -> decrement(‘count‘,3);
var_dump($num1,$num2); //返回受影响的行数
}给单独某一条记录的字段进行自增或自减
public function index(){
//给单独某一条记录的字段进行自增或自减
$num1 = DB::table(‘news‘)
->where(‘Id‘,14) //查找id为14的那一行
-> increment(‘author‘,3); //将author字段自增3
var_dump($num1); //返回受影响的行数
}给某行记录进行自增的同时,对其他字段进行更新
public function index(){
$num2 = DB::table(‘news‘)
->where(‘Id‘,14) //查找id为14的那一行
-> increment(‘author‘,3,[‘title‘ => ‘自增的同时修改‘]); //若要更新多个字段,数组里面再嵌套数组
var_dump($num2); //返回受影响的行数
}查询构造器:删除数据
public function index(){
//查询构造器:删除数据
$num3 = DB::table(‘news‘)
->where(‘Id‘,14) //删除某条记录
->delete();
var_dump($num3); //返回受影响的行数
}删除多行数据,删除 >=x 的数据
public function index(){
//查询构造器:删除数据
$num3 = DB::table(‘news‘)
->where(‘Id‘,‘>=‘,4) //删除Id>=4的记录
->delete();
var_dump($num3); //返回受影响的行数
}truncate,删除整个表 [tr???ke?t]
DB::table(‘news‘)->truncate(); //删除某个表,不会返回任何数据
查询构造器:查询数据
查询数据表的所有内容
public function index(){
// 查询表的所有数据
$num4 = DB::table(‘news‘)->get(); //查询news表的所有数据
dd($num4); //返回结果集
}查询某一条数据,或某一个范围的数据
public function index(){
//查询某一条数据,或某一个范围的数据
$data = DB::table(‘news‘)
->where(‘Id‘,‘>‘,3) //查询Id>3的数据
->get();
dd($data);
}查询 符合多个条件的数据(可以试着做登陆验证)
public function index(){
//查询 符合多个条件的数据(可以试着做登陆验证)
$deng = DB::table(‘news‘)
->whereRaw(‘Id >= ? and title=?‘,[4,2]) //id>=4,title=2的同一条数据
->get();
dd($deng);
}查询第一条数据
public function index(){
//first:查询第一条数据,默认正序
$num5 = DB::table(‘news‘)->first();
//first:查询第一条数据,逆序方式
$num6 = DB::table(‘news‘)->orderBy(‘Id‘,‘desc‘)->first();
dd($num5,$num6);
}查询表的某一个字段的所有内容
public function index(){
//pluck:查询表的某一个字段的所有内容
$num6 = DB::table(‘news‘)
->pluck(‘title‘); //查询news表的title字段
dd($num6);
}查询一个表的多个字段
public function index(){
//select:查询一个表的多个字段
$num8 = DB::table(‘news‘)
->select(‘title‘,‘author‘,‘source‘)
->get();
dd($num8);
}chunk:当数据有上万条时,指定每次查询多少条
public function index(){
//chunk:当数据有上万条时,指定每次查询多少条
DB::table(‘news‘)
-> orderBy(‘Id‘,‘asc‘) //使用chunk时,必须使用orderBy子句。顺序为asc,逆序为desc
-> chunk (2,function($count){ //每次查询两条数据,知道数据查完
echo ‘<pre>‘; //将数据整齐格式化
var_dump($count);
});
} 相关推荐
lbyd0 2020-11-17
腾讯soso团队 2020-11-06
yangkang 2020-11-09
KANSYOUKYOU 2020-11-16
wushengyong 2020-10-28
Apsaravod 2020-11-05
PeterChangyb 2020-11-05
gyunwh 2020-11-02