一 数据库相关配置(项目根目录的.env文件)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=tpstudy
DB_USERNAME=root
DB_PASSWORD=123456
二 原生sql语句实现增删改查
php的常用框架大多都提供了至少2种的数据库操作方式,分别是模型、原生sql,模型的方式适用简单的数据库操作,对于非常复杂的sql操作模型就毫无用武之地了。我们可以使用DB类操作数据库实现增删改查,直接上代码
/**
* 不带条件查询
*/
public function query(){
$sql="select * from tp_user";
$res=DB::select($sql);
dd($res);
//$res=DB::table("tp_user")->where("id","<",17)->get();
//dd($res);
}
/**
* 带条件查询
*/
public function condQuery(){
$sql="select * from tp_user where id=:id";
$res=DB::select($sql,["id"=>17]);
dd($res);
}
/**
* 更新操作
*/
public function update(){
$sql="update tp_user set nickName=:nickName where id=:id";
$res=DB::update($sql,["id"=>17,"nickName"=>"小周"]);
dd($res);
//$res=DB::table("tp_user")->where("id",17)->update(["nickName"=>"大周杰伦"]);
//dd($res);
}
/**
* 删除操作
*/
public function remove(){
$sql="delete from tp_user where id=:id";
$res=DB::delete($sql,["id"=>12]);
dd($res);
}
/**
* 新增操作
*/
public function save(){
$sql="insert into tp_user(userName,password,nickName,birthday,age,address,phone,email) values(:userName,:password,:nickName,:birthday,:age,:address,:phone,:email)";
$data=[
"userName"=>"boren",
"password"=>"123456",
"nickName"=>"漩涡博人",
"birthday"=>date('Y-m-d H:i:s',time()),
"age"=>15,
"address"=>"火之国木叶",
"phone"=>"13333333333",
"email"=>"boren@"
];
$res=DB::insert($sql,$data);
dd($res);
}
原生sql操作数据库可以使用命名参数,参数值以关联数组的方式传入,这样就不用关心参数顺序问题了
二 使用模型操作数据库
1 模型类的创建,原则上只要继承Model即可,可以手动创建也可以使用artisan命令创建
<?php
namespace App\Admin;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
*表名称
*/
protected $table='tp_user';
/**
*主键字段名
*/
protected $primaryKey='id';
/**
* 时间戳 -created_at,updated_at 这2个字段不需要
*/
public $timestamps=false;
/**
*需要填充的字段
*/
protected $fillable=['userName','password','nickName','birthday','age','address','phone','email'];
}
?>
模型的名称也可以写的更规范些,例如UserModel,RoleModel等,以上代码只是模型类的几个配置,其他的参照开发文档
2 使用模型实现数据库的增删改查
/**
* 使用模型的查询,其他的操作如排序等可参照开发文档
*/
public function modelQuery(){
$model=new UserModel();
$data=$model::where('id','>','5')->select(['userName','nickName'])->get()->toArray();
dd($data);
}
/**
* 新增-使用模型
*/
public function modelAdd(){
$model=new UserModel();
$data=[
'userName'=>'zhiling',
'password'=>'654321',
'nickName'=>'志玲',
'birthday'=>date('Y-m-d H:i:s',time()),
'age'=>40,
'address'=>'北京市西城区',
'phone'=>'19999999999',
'email'=>'19@'
];
$model->create($data);
echo "新增成功";
}
/**
* 修改-使用模型
*/
public function modelMerge(){
$model=new UserModel();
$model->where('id',20)->update(['nickName'=>'志玲姐姐']);
echo "修改成功";
}
/**
* 删除-使用模型
*/
public function modelDelete(){
$model=new UserModel();
$model->where('id',20)->delete();
echo "删除成功";
}
模型的使用也和其他框架大同小异,也是使用use把模型引入,调用相关方法即可 。
三 补充知识(获取请求参数)-方便后续的开发
Input::all();
Input::get('name');
Input::only(['id','name']);
Input::except(['id','name']);
Input::has('sex');
all 获取所有请求参数
get 可获取某个指定名称的参数
only 和get类似但可以指定要获取的多个参数的名称
except 和only相反,用来获取除指定名称之外的参数
has 判断参数名称是否存在