laravel 프레임 워 크 모델 과 데이터베이스 기초 작업 실례 상세 설명
laravel 은 3 대 데이터베이스 작업(DB facade[원본 찾기],조회 구조 기[Query Builder],Eloquent ORM)으로 나 뉜 다.
use Illuminate\Support\Facades\DB;
1.DB facade[원본 찾기]
$results = DB::select('select * from users where id = :id', ['id' => 1]);
DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);
반환 하지 않 는 값:
DB::statement('drop table users');
자동 증가 id 되 돌리 기:
$id = DB::table('users')->insertGetId(
['email' => '[email protected]', 'votes' => 0]
);
$affected = DB::update('update users set votes = 100 where name = ?', ['John']);
$num=DB::delete('delete from vipinfo where vip_ID= ?',[5]);
2.조회 구조 기[Query Builder]laravel 조회 구조 기 는 데이터 베 이 스 를 구축 하고 실행 하 며 문법 을 찾 는 데 편리 하고 유창 한 인 터 페 이 스 를 제공 합 니 다.pdo 매개 변수 바 인 딩 을 사용 하여 프로그램 이 sql 주입 을 면 할 수 있 도록 합 니 다.따라서 들 어 오 는 매개 변 수 는 별도의 전의 특수 문 자 를 필요 로 하지 않 습 니 다.기본적으로 모든 데이터베이스 작업 을 만족 시 킬 수 있 고 지원 하 는 모든 데이터베이스 시스템 에서 실행 할 수 있다.
(1)신규
$bool=DB::table("vipinfo")->insert(['vip_ID'=>6,'vip_name'=>'zls','vip_type'=>" ",'vip_fenshu'=>800]);
echo $bool; // bool
// id, insertGetId
$id=DB::table("vipinfo")->insertGetId(['vip_ID'=>5,'vip_name'=>'wyp','vip_type'=>" ",'vip_fenshu'=>800]);
echo $id;
//
$bool=DB::table("vipinfo")->insert([
['vip_ID'=>5,'vip_name'=>'wyp','vip_type'=>" ",'vip_fenshu'=>800],
['vip_ID'=>6,'vip_name'=>'zls','vip_type'=>" ",'vip_fenshu'=>800],
]);
echo $bool; // bool
(2)수정
$bool=DB::table("vipinfo")->where('vip_ID',6)->update(['vip_fenshu'=>500]);
echo $bool;
//
$bool=DB::table("vipinfo")->where('vip_ID',6)->increment("vip_fenshu");// 1
$bool=DB::table("vipinfo")->where('vip_ID',6)->increment("vip_fenshu",3);// 3
echo $bool;
//
$bool=DB::table("vipinfo")->where('vip_ID',6)->decrement("vip_fenshu");// 1
$bool=DB::table("vipinfo")->where('vip_ID',6)->decrement("vip_fenshu",3);// 3
echo $bool;
//
$bool=DB::table("vipinfo")->where('vip_ID',6)->increment("vip_fenshu",3,['vip_name'=>'dbdibi']);// 3
(3)삭제
$num=DB::table("vipinfo")->where('vip_ID',6)->delete();// 1
$num=DB::table("vipinfo")->where('vip_ID','>',4)->delete();//
echo $num; //
$num=DB::table("vipinfo")->truncate();// , ,
(4)조회
//get()
$student=DB::table("vipinfo")->get();
var_dump($student);
//first() 1
$student=DB::table("vipinfo")->first(); //
$student=DB::table("vipinfo")->orderBy('vip_ID','desc')->first();// vip_ID
var_dump($student);
//where()
$student=DB::table("vipinfo")->where('vip_ID','>=',2)->get(); //
$student=DB::table("vipinfo")->whereRaw('vip_ID> ? and vip_fenshu >= ?',[2,300])->get(); //
dd($student);
//pluck() , get
$student=DB::table("vipinfo")->pluck('vip_name');
dd($student);
//lists() ,
$student=DB::table("vipinfo")->lists('vip_name','vip_ID'); // vip_ID
dd($student);
$student=DB::table("vipinfo")->lists('vip_name'); // , 0
//select()
$student=DB::table("vipinfo")->select('vip_name','vip_ID')->get();
dd($student);
//chunk() n
$student=DB::table("vipinfo")->chunk(2,function($students){ // 2
var_dump($students);
if(.......) return false; // return
});
집합 함수 사용
//count()
$nums=DB::table("vipinfo")->count();
echo $nums;
//max() , min
$max=DB::table("vipinfo")->max("vip_fenshu");
echo $max;
//avg()
$avg=DB::table("vipinfo")->avg("vip_fenshu");
echo $avg;
//sum()
$sum=DB::table("vipinfo")->sum("vip_fenshu");
echo $sum;
3.Eloquent ORM1.소개,모델 구축 및 조회 데이터
소개:laravel 이 자체 적 으로 가지 고 있 는 Eloquent ORM 은 activeRecord 로 데이터베이스 작업 에 사 용 됩 니 다.모든 데이터 시트 는 이에 대응 하 는 모델 이 있어 데이터 시트 의 상호작용 에 사용 된다.
모델 을 만 들 고 app 디 렉 터 리 에 Student 모델 을 만 듭 니 다.즉,Student.php 입 니 다.접미사 가 필요 없습니다.
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Student extends Model{
//
protected $table= 'vipinfo';
//
protected $primaryKey= 'vip_ID';
// laravel created_at,updated_at,deleted_at
protected $timestamps= false;
//
protected $fillable= ['id','name'];
}
Student 컨트롤 러 에 test 3 방법 을 추가 하여 경로 설정
Route::get('test3',['uses'=>'StudentController@test3']);
public function test3(){
// all()
$studnets=Student::all();
dd($studnets);
//find() , 。findOrFail()
$student=Student::find(5); // 5
var_dump($student['attributes']);
// ,
$student=Student::get();
var_dump($student);
}
2.데이터 추가,사용자 정의 타임 스탬프,대량 할당(1)save 방법 으로 추가
laravel 은 기본적으로 created 를 유지 합 니 다.at,updated_at 두 필드,이 두 필드 는 모두 시간 스탬프,정형 11 비트 를 저장 하기 때문에 사용 할 때 데이터베이스 에 이 두 필드 를 추가 해 야 합 니 다.이 기능 이 필요 하지 않 으 면 모델 에 속성 을 추가 하 십시오:Public$timestamps=false;현재 시간 스탬프 를 데이터베이스 에 저장 할 수 있 는 방법
protected function getDateFormat(){
return time();
}
이렇게 하면 그 두 필드 가 필요 없다.컨트롤 러 에 쓰기:
$student=new Student();
//
$student->vip_name='xiaoming';
$student->vip_type=' ';
$student->vip_fenshu=900;
$bool=$student->save(); //
echo $bool;
데이터베이스 에서 기 록 된 시간 스탬프 를 가 져 올 때 기본적으로 날짜 에 따라 포맷 된 시간 스탬프 를 가 져 옵 니 다.원래 의 시간 스탬프 를 가 져 오 려 면 모델 에 asDateTime 방법 을 추가 합 니 다.
protected function asDateTime($val){
return $val;
}
(2)create 방법 으로 새로 추 가 될 때 모델 에 추가 해 야 합 니 다.
protected $fillable=['vip_name','vip_fenshu','vip_type']; //
컨트롤 러 에 쓰기:
Student::create(['vip_name'=>'mmm','vip_fenshu'=>999,'vip_type'=>' ']);
이렇게 하면 새로 성공 할 수 있 습 니 다!(3)firstOrCreate()속성 으로 기록 찾기,없 으 면 추가
$student=Student::firstOrCreate(['vip_name'=>'mmm']);
echo $student;
(4)firstOrNew()는 속성 으로 기록 을 찾 습 니 다.없 으 면 새로운 인 스 턴 스 를 만 듭 니 다.저장 이 필요 하 다 면 save 방법 을 사용 하 십시오()
$student=Student::firstOrNew(['vip_name'=>'mmm']);
$student->save();
echo $student;
3. 데이터 수정save 방법 으로 모델 업데이트
update 방법 으로 데 이 터 를 업데이트 합 니 다(create 와 대응 하 는 Eloquent 모델 류 는 update 방법 으로 데 이 터 를 업데이트 하 는 것 도 지원 합 니 다.대량 할당 도 사용 합 니 다)
//
$student=Student::find(2);
$student->vip_fenshu=10000;
$student->save(); // bool
//
$num=Student::where('vip_ID','>',2)->update(['vip_fenshu'=>2000]);
echo $num; //
4. 데이터 삭제
//(1)
$student=Student::find(11);
$student->delete(); // bool
//(2)
$num=Student::destroy(10); // 10
echo $num; //
$num=Student::destroy(10,5); // $num=Student::destroy([10,5]);
echo $num; //
비디오 자원 학습 참고:http://www.imooc.com/learn/697Laravel 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 는 Laravel 프레임 워 크 를 바탕 으로 하 는 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.