Laravel 개발에서 저장 프로시저는 데이터베이스의 중요한 부분입니다. 이는 데이터베이스를 더 잘 관리하고, 쿼리 효율성을 향상시키며, 코드 논리 및 데이터베이스 연결 볼륨의 문제를 줄이는 데 도움이 됩니다. 이 문서에서는 Laravel 애플리케이션에서 저장 프로시저를 호출하는 방법을 설명합니다.
1. 저장 프로시저란 무엇인가요?
저장 프로시저는 데이터베이스에 저장되고 재사용 가능한 프로시저 또는 함수로 호출되는 미리 컴파일된 SQL 문 집합입니다. SQL 문과 달리 저장 프로시저는 제어 논리 및 SQL 문을 포함하고 매개 변수를 허용하고 여러 값을 반환하며 임시 테이블 등을 조작할 수도 있습니다. 저장 프로시저는 애플리케이션 성능과 보안을 향상시키고 애플리케이션 복잡성을 단순화하며 데이터베이스와 애플리케이션 간의 왕복 통신을 줄일 수 있습니다.
2. 저장 프로시저 생성
MySQL에서는 CREATE PROCEDURE 문을 사용하여 저장 프로시저를 생성해야 합니다. 구문은 다음과 같습니다.
CREATE PROCEDURE procedure_name ([IN | OUT | INOUT] parameter_name data_type [(length)],...) [SQL语句]
그 중 프로시저_이름은 저장 프로시저의 이름이고, 매개변수_이름은 다음을 나타냅니다. 매개변수 이름, data_type은 매개변수의 데이터 유형, length는 데이터 길이를 나타냅니다. 매개 변수에는 입력 매개 변수를 의미하는 IN(저장 프로시저에 들어갈 때만 사용 가능), 출력 매개 변수를 의미하는 OUT(저장 프로시저를 통해서만 데이터를 얻을 수 있음), 입력과 출력이 모두 가능한 INOUT이 있습니다.
예를 들어 사용자 정보를 얻기 위해 getUserInfo 저장 프로시저를 생성합니다. 코드는 다음과 같습니다.
CREATE PROCEDURE getUserInfo(IN userId INT) BEGIN SELECT * FROM users WHERE id = userId; END
이 저장 프로시저를 통해 지정된 ID의 사용자 정보를 얻을 수 있습니다.
3 저장 프로시저 호출
Laravel에서는 DB 파사드에서 제공하는 DB::select 메소드를 사용하여 저장 프로시저를 실행할 수 있습니다. 예:
$result = DB::select("CALL getUserInfo(1)");
여기서 사용자 정보를 얻는 예를 들어보겠습니다. id 1을 통해 CALL 문을 통해 생성된 getUserInfo 저장 프로시저를 호출합니다. 호출이 성공한 후 $result는 사용자 정보가 포함된 개체를 반환합니다.
매개변수를 전달해야 하는 경우 자리 표시자를 사용할 수 있습니다. 예:
$result = DB::select("CALL getUserInfo(?)", [1]);
여기서 자리 표시자는 물음표이고 두 번째 매개변수는 배열 형식이므로 질문에 값을 할당해야 합니다. 그에 따라 표시하십시오.
일부 저장 프로시저는 결과 세트를 반환해야 하지만 일부는 업데이트 또는 삽입 작업만 수행해야 한다는 점은 주목할 가치가 있습니다. DB 파사드를 통해 제공되는 DB::statement 메소드를 직접 호출할 수 있습니다. 예:
DB::statement("CALL updateUser(1, 'John')");
여기서는 updateUser Storage를 호출합니다. 프로세스는 ID 1로 사용자 정보를 업데이트하지만 반환된 결과 집합은 없습니다.
4. ORM을 사용하여 저장 프로시저 호출
라라벨의 ORM은 DB 파사드를 통해 저장 프로시저를 호출하는 것 외에도 저장 프로시저를 호출하는 방법도 제공합니다.
$results = User::hydrate( DB::select("CALL getUserInfo(?)", array($id)) );
그 중 User는 사용자를 나타냅니다. 테이블. 이 메소드는 DB::select 메소드와 유사하며 매개변수를 전달하여 getUserInfo 저장 프로시저를 호출하고 hydrate 메소드를 통해 결과를 모델에 저장합니다.
요약
Laravel은 저장 프로시저를 호출하는 편리한 방법을 제공합니다. DB Facade 및 ORM을 통해 생성된 저장 프로시저를 CALL 문을 통해 직접 호출하고 반환된 결과 세트를 얻거나 데이터를 업데이트할 수 있습니다. 저장 프로시저를 사용하면 데이터베이스를 보다 효율적으로 관리하고, 애플리케이션의 성능과 보안을 향상시키며, 애플리케이션의 복잡성을 단순화할 수도 있습니다.
위 내용은 laravel은 저장 프로시저를 호출합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!