db2_prepare

(PECL ibm_db2 >= 1.0.0)

db2_prepare — 실행할 SQL 문을 준비합니다.


설명

db2_prepare(resource $connection, string $statement, array $options = ?): resource

db2_prepare()는 입력, 출력 또는 입력/출력에 대한 매개변수를 나타내는 0개 이상의 매개변수 표시문자(? 문자)를 포함할 수 있는 준비된 SQL문을 작성합니다. db2_bind_param()을 사용하거나 입력 값에 대해서만 db2_execute()에 전달된 배열로 매개변수를 준비된 명령문에 전달할 수 있습니다.

애플리케이션에서 준비된 명령문을 사용하면 세 가지 주요 이점이 있습니다.

  • Performance: 명령문을 준비할 때 데이터베이스 서버는 해당 명령문으로 데이터를 검색하기 위한 최적화된 액세스 계획을 생성합니다. 이후에 db2_execute()를 사용하여 준비된 명령문을 실행하면 명령문이 해당 액세스 계획을 재사용할 수 있고 실행하는 모든 명령문에 대해 새 액세스 계획을 동적으로 생성하는 오버헤드를 피할 수 있습니다.
  • Security: 명령문을 준비할 때 입력 값에 대한 매개변수 표시문자를 포함할 수 있습니다. 자리 표시자에 대한 입력 값으로 준비된 명령문을 실행할 때 데이터베이스 서버는 각 입력 값을 확인하여 유형이 열 정의 또는 매개변수 정의와 일치하는지 확인합니다.
  • Advanced functionality: 매개변수 표시문자를 사용하면 준비된 SQL 문에 입력 값을 전달할 수 있을 뿐만 아니라 db2_bind_param()을 사용하여 저장 프로시저에서 OUT 및 INOUT 매개변수를 검색할 수 있습니다.

매개변수

connection
db2_connect() 또는 db2_pconnect()에서 리턴된 유효한 데이터베이스 연결 자원 변수.
statement
하나 이상의 매개변수 표시문자를 선택적으로 포함하는 SQL문.
options
명령문 옵션을 포함하는 연관 배열입니다. 이 매개변수를 사용하여 이 기능을 지원하는 데이터베이스 서버에서 스크롤 가능한 커서를 요청할 수 있습니다.

유효한 명령문 옵션에 대한 설명은 db2_set_option()을 참조하십시오.


반환 값

SQL 문이 성공적으로 구문 분석되고 데이터베이스 서버에서 준비된 경우 문 리소스를 반환합니다. 데이터베이스 서버가 오류를 반환하면 false를 반환합니다. db2_stmt_error() 또는 db2_stmt_errormsg()를 호출하여 리턴된 오류를 판별할 수 있습니다.


Examples

예제 #1 매개변수 마커가 있는 SQL 문 준비 및 실행

다음 예는 4개의 매개변수 표시문자를 승인하는 INSERT문을 준비한 다음 db2_execute()에 전달할 입력 값을 포함하는 배열의 배열을 반복합니다.

                  
<?php
$animals = array(
    array(0, 'cat', 'Pook', 3.2),
    array(1, 'dog', 'Peaches', 12.3),
    array(2, 'horse', 'Smarty', 350.0),
);

$insert = 'INSERT INTO animals (id, breed, name, weight)
    VALUES (?, ?, ?, ?)';
$stmt = db2_prepare($conn, $insert);
if ($stmt) {
    foreach ($animals as $animal) {
        $result = db2_execute($stmt, $animal);
    }
}
?>
                  
                

기타

  • db2_bind_param() - PHP 변수를 SQL 문 매개변수에 바인딩
  • db2_execute() - 준비된 SQL 문을 실행합니다.
  • db2_stmt_error() - SQL 문에 의해 반환된 SQLSTATE를 포함하는 문자열을 반환합니다.
  • db2_stmt_errormsg() - 마지막 SQL 문 오류 메시지가 포함된 문자열을 반환합니다.