그러나 저장 프로시저를 사용하면 속도와 효율성이라는 가장 확실한 두 가지 이점이 있습니다. 저장 프로시저를 사용하는 것이 확실히 더 빠릅니다. 효율성 측면에서 애플리케이션이 일련의 SQL 작업을 한 번에 수행해야 하는 경우 PHP와 Oracle을 오가며 왕복 횟수를 줄이기 위해 애플리케이션을 데이터베이스에 직접 배치하는 것이 좋습니다. 그리고 효율성을 높이세요. 하지만 인터넷 응용 프로그램에서는 속도가 매우 중요하므로 저장 프로시저를 사용해야 합니다. 저도 얼마 전에는 PHP를 사용하여 저장 프로시저를 호출하고 다음 예제를 수행했습니다.
코드
코드 복사 코드는 다음과 같습니다.
//테스트 테이블 만들기
테이블 만들기 test (
id number(16) not null,
name varchar2(30) not null,
기본 키(id)
) //데이터 삽입
테스트 값에 삽입 ( 5, 'php_book');
//저장 프로시저 생성
프로시저 생성 또는 교체 proc_test (
p_id in out number,
p_name out varchar2
) as
start
test
에서 p_name
에 이름 선택, 여기서 id = 5; end proc_test 🎜>
코드는 다음과 같습니다.
$password = "tiger" //비밀번호 $conn_str = "tnsname "; //연결 문자열 (cstr : 연결_문자열) $remote = true //원격 연결 여부 if ($remote) { $conn = ocilogon($user, $password, $conn_str) ;
} else {
$conn = ocilogon($user, $password);
}
//Settings Binding
$id = 5; bebound
$name = ""; // 바인딩할 PHP 변수 이름
/**저장 프로시저를 호출하는 sql 문(sql_sp: sql_storeprocedure)
* 구문:
* 시작 저장 프로시저 이름([[:] 매개변수])
* 콜론을 추가하면 매개변수가 위치
* */
$sql_sp = "begin proc_test(:id, :name); end;" ;
//parse
$stmt = ociparse($conn, $sql_sp);
//바인딩 실행
ocibindbyname($stmt, ":id", $id, 16); 매개변수 설명: php 변수 $id를 위치:id에 바인딩하고 바인딩 길이를 16자리로 설정합니다.
ocibindbyname( $stmt, ":name", $name, 30)
//execute
ociexecute($stmt);
//결과
echo "이름은 $name
"
?>
위 내용은 oracleen의 내용을 포함하여 PHP를 사용하여 Oracle 저장 프로시저를 호출하는 방법을 소개한 내용이므로 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.