Laravel을 사용하여 개발하는 과정에서 특정 데이터베이스 작업을 수행하기 위해 데이터베이스의 저장 프로시저에 연결해야 하는 경우가 있습니다. 이 글에서는 Laravel을 사용하여 저장 프로시저를 연결하는 방법과 몇 가지 고려 사항을 소개합니다.
먼저 Laravel이 데이터베이스에서 해당 작업을 수행할 수 있도록 config/database.php 파일에서 데이터베이스 연결을 구성해야 합니다. 파일에서 'mysql' 연결 구성을 찾아 다음과 같이 매개변수를 수정합니다:
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, 'options' => array( PDO::ATTR_EMULATE_PREPARES => true, ), ],
그 중 데이터베이스 연결이 사용자 정의 포트, 사용자 이름 및 비밀번호를 사용하는 경우 해당 변경 사항이 다음에서 수행되어야 한다는 점에 유의해야 합니다. .env 파일 아래와 같은 구성:
DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=mydatabase DB_USERNAME=myusername DB_PASSWORD=mypassword
저장 프로시저 연결을 만들기 전에 데이터베이스에 저장 프로시저를 생성해야 합니다. MySQL을 예로 들면, MySQL 명령줄이나 도구에서 다음과 유사한 SQL 문을 실행하여 저장 프로시저를 생성할 수 있습니다.
CREATE PROCEDURE my_procedure (IN id INT, IN name VARCHAR(255), OUT result INT) BEGIN -- 在此处编写存储过程的具体代码 -- 例如:将id和name插入到数据库表中,并将插入的数据的主键返回到result变量 INSERT INTO my_table(id, name) VALUES (id, name); SET result = LAST_INSERT_ID(); END
저장 프로시저를 생성할 때 다음 사항에 주의해야 합니다.
저장 프로시저 생성의 구체적인 구현은 실제 비즈니스 요구에 따라 작성되었습니다.
Laravel에서 저장 프로시저를 연결하려면 DB 클래스를 사용해야 합니다. 다음 코드를 사용하여 저장 프로시저에 연결합니다.
$pdo = DB::connection()->getPdo(); $stmt = $pdo->prepare("CALL my_procedure(?, ?, @result)"); $stmt->bindParam(1, $id, PDO::PARAM_INT); $stmt->bindParam(2, $name, PDO::PARAM_STR); $stmt->execute(); $select = $pdo->query("SELECT @result AS result"); $result = $select->fetch(PDO::FETCH_ASSOC)['result'];
그 중에서 주목해야 할 점은 다음과 같습니다.
위 내용은 Laravel 연결 저장 프로시저의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!