Laravel Raw SQL 쿼리 예제
Laravel은 기본 SQL 쿼리를 지원하지만 안전을 보장하기 위해 매개 변수 바인딩을 선호해야합니다. 1. DB :: SELECT ()를 사용하여 SQL 주입을 방지하기 위해 매개 변수 바인딩으로 선택 쿼리를 실행합니다. 2. DB :: Update ()를 사용하여 업데이트 작업을 수행하고 영향을받는 행 수를 반환합니다. 3. db :: insert ()를 사용하여 데이터를 삽입하십시오. 4. db :: delete ()를 사용하여 데이터를 삭제합니다. 5. db :: statement ()를 사용하여 생성, Alter 등과 같은 결과 세트없이 SQL 문을 실행하십시오. 6. 쿼리 빌더의 whereraw, selectraw 및 기타 방법을 사용하여 기본 표현식을 결합하여 보안을 개선하는 것이 좋습니다. 7. DB :: 비공개 준비 ()를 사용하여 사용자 입력을 처리하지 않으면 신뢰할 수있는 내부 작업에만 사용됩니다. 요컨대, 기본 SQL을 사용할 수 있지만 매개 변수 바인딩을 통해 보안을 보장해야하며보다 안전한 쿼리 빌더 확장 방법이 선호됩니다.
Laravel에서는 Eloquent ORM과 쿼리 빌더가 일반적으로 사용되지만 복잡한 작업 또는 성능 최적화를 위해 원시 SQL 쿼리를 작성 해야하는 경우가 있습니다. Laravel은 원시 SQL을 안전하고 효과적으로 실행하는 몇 가지 방법을 제공합니다.

Laravel에서 RAW SQL을 사용하는 실질적인 예는 다음과 같습니다.
RAW SELECT Queries에 DB::select()
사용합니다
Illuminate \ support \ Facades \ db를 사용하십시오. $ user = db :: select ( 'select * on where age>?', [18]);
- 첫 번째 매개 변수는 원시 SQL입니다.
- 두 번째는 바인딩 배열입니다 (SQL 주입을 방지하기 위해).
-
stdClass
객체의 배열을 반환합니다.
? 참고 : 변수를 직접 연결하는 대신 항상 매개 변수 바인딩 (
[18]
)를 사용하십시오.
RAW 업데이트 쿼리에 DB::update()
사용합니다
$ plefected = db :: update ( '업데이트 사용자가 투표를 설정합니다 =?
- 영향을받는 행의 수를 반환합니다.
RAW 삽입 쿼리에 DB::insert()
사용합니다
DB :: 삽입 ( '사용자에 삽입 (이름, 이메일, 연령) 값 (?,?,?)', [ 'Jane Doe', 'jane@example.com', 25 ]);
RAW 삭제 쿼리에는 DB::delete()
사용합니다
$ deleted = db :: delete ( 'Age <?', [18]의 사용자에서 삭제);
schema 또는 비 선택적 쿼리에 DB::statement()
사용합니다
결과를 반환하지 않는 RAW SQL에는이를 사용하십시오 (예 : CREATE
, ALTER
, DROP
) :
db :: stater ( ''존재하지 않으면 테이블 작성 temp_users (id int auto_increment 기본 키, name varchar (255));
Query Query Builder에서 원시 표현 사용 (안전한 대안)
완전한 원시 쿼리 대신 필요한 경우 원시 표현을 주입 할 수 있습니다.

$ user = db :: 테이블 ( '사용자') -> whereraw ( 'age>? and status =?', [18, 'active']))) -> selectraw ( 'id, name, updated_at, (Age * 2) as doubled_age') -> get ();
또는 원시 표현으로 주문 :
-> OrderByraw ( '이름 asc, create_at desc')
DB::unprepared()
사용 (권장되지 않음)
이것은 바인딩없이 RAW SQL을 실행합니다. 사용자 입력이 관련되면 위험합니다 .
DB :: 준비되지 않은 ( 'Drop Table Users_backup');
⚠️ 신뢰할 수있는 내부 작업 (예 : 마이그레이션, 설정 스크립트)에만 사용됩니다.
일반적인 방법의 요약
방법 | 유스 케이스 |
---|---|
DB::select()
|
원시 선택 쿼리 |
DB::update()
|
원시 업데이트 쿼리 |
DB::insert()
|
원시 삽입 쿼리 |
DB::delete()
|
원시 삭제 쿼리 |
DB::statement()
|
스키마 또는 DDL 쿼리 |
DB::unprepared()
|
안전하지 않음 - 동적 입력으로 피하십시오 |
웅변적인 모델 내에서 일하거나 유연성이 더 필요한 경우 전체 원시 쿼리 대신 원시 표현식 ( whereRaw
, selectRaw
등)을 사용하는 것을 고려하십시오. 그들은 더 안전하고 Laravel의 생태계와 더 잘 통합됩니다.
기본적으로 RAW SQL은 지원되지만 항상 매개 변수 바인딩 우선 순위를 정하고 사용자 데이터로 unprepared
피하십시오.
위 내용은 Laravel Raw SQL 쿼리 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
![현재 NVIDIA GPU에 첨부 된 디스플레이를 사용하고 있지 않습니다 [고정].](https://img.php.cn/upload/article/001/431/639/175553352135306.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
ifyousee "YourEnotusingAdisplayAttachedToannvidiagpu,"YourMonitorIsConnectedTothenVidiagpupport, configuredisplaysettingsinnvidiacontrolpanel, updatedRiversUsingDduandcleanInstall, 및 setTheprestOdcreteinbios/uefi

Java 디자인 패턴은 일반적인 소프트웨어 설계 문제에 대한 재사용 가능한 솔루션입니다. 1. 싱글 톤 모드는 클래스의 인스턴스가 하나 뿐이며 데이터베이스 연결 풀링 또는 구성 관리에 적합합니다. 2. 공장 모드는 객체 생성을 분해하고 지불 방법과 같은 객체는 공장 클래스를 통해 생성됩니다. 3. 관찰자 모드는 날씨 업데이트와 같은 이벤트 중심 시스템에 적합한 종속 객체를 자동으로 알립니다. 4. 정렬 전략과 같은 전략 모드의 동적 스위칭 알고리즘은 코드 유연성을 향상시킵니다. 이러한 패턴은 코드 유지 관리 및 확장 성을 향상 시키지만 과도한 사용을 피해야합니다.

Adeadlockinjavaoccurswhentwoormorethreadsareblockedsforever,, 일반적으로, 일반적으로 duetocircularwaitcausedbyinconsentlockordering; thiscanbeptrededbectedbectedbectedbectedbectedbectefeartefournecessaryconditions —MutualExclusion, holdandwait, nopualwait, nopualclusion, nopualclusion

useOptional.empty (), 옵션.의 (), andoptional.ofnullable () theCreateOptionalInstancesDependingOnsabsent, non-null, orpossiblynull.2.checkforvaluessafelyusingispresent () orpreferlyinglioid () toaviDIDHECK.3

theoilpaintfilterinphotoshopisgreyedoutus는 compatibledocumentoRlayertype를 incizeofindphotoshopcs6orlaterinthefulldesktopversion을 보장하고, mode 및 mouctipixureapioreapeLay ray를 확인합니다

micronautisidealforbuildingcloud-nativejavaapplicationsduetoitslowmemoryfootprint, faststartuptimes 및 compile-timedectional encection, mateituperiortotraditionalframslikespringbootformicroservices, andserverlessenvonderments.1.microna

runeApplicationOrCommandAsAdMinistratorByright-Clicking andSelecting "RunasAdMinStrator"TONESUREELEVATEDPRIVILEGESERANTED.2.CHECKUSERACCOUNTCONTROL (UAC) SETCTINGSBYSERCHINGFORUACINTHARTMENUANDSTITTINGTHETEDEFAULLEVEL (SecondFrff

제공자 메커니즘을 통해 알고리즘을 구현하는 MessageDigest, Cipher, Keygenerator, Securandom, Signature, Keystore 등과 같은 JCA 핵심 구성 요소를 이해합니다. 2. SHA-256/SHA-512, AES (256 비트 키, GCM 모드), RSA (2048 비트 이상) 및 Securerandom과 같은 강력한 알고리즘 및 매개 변수를 사용하십시오. 3. 하드 코딩 된 키를 피하고 KeyStore를 사용하여 키를 관리하고 PBKDF2와 같은 안전하게 파생 된 암호를 통해 키를 생성합니다. 4. ECB 모드 비활성화, GCM과 같은 인증 암호화 모드를 채택하고 각 암호화에 고유 한 IV를 사용하고 민감한 민감한 IV를 시간에 사용하십시오.
