cubrid_execute

(PECL CUBRID >= 8.3.0)

cubrid_execute - 준비된 SQL 문 실행


설명

cubrid_execute(resource $conn_identifier, string $sql, int $option = 0): resource

cubrid_execute(resource $request_identifier, int $option = 0): bool

cubrid_execute() 함수는 주어진 SQL 문을 실행하는 데 사용된다. conn_identifier와 SQL을 이용하여 쿼리를 실행하고 생성된 요청 식별자를 반환한다. 매개변수 바인딩이 필요하지 않은 간단한 쿼리 실행에 사용됩니다. 또한 cubrid_prepare()cubrid_bind()를 통해 cubrid_execute() 함수를 사용하여 준비된 명령문을 실행한다. 이때 request_identifieroption의 인수를 지정해야 합니다.

option은 쿼리 실행 후 OID를 가져올지 여부와 쿼리를 동기 또는 비동기 모드로 실행할지 여부를 결정하는 데 사용됩니다. CUBRID_INCLUDE_OIDCUBRID_ASYNC(또는 여러 SQL 문을 실행하려는 경우 CUBRID_EXEC_QUERY_ALL)는 비트 OR 연산자를 사용하여 지정할 수 있습니다. 지정하지 않으면 둘 다 선택되지 않습니다. CUBRID_EXEC_QUERY_ALL 플래그가 설정되면 동기 모드(sync_mode)를 사용하여 쿼리 결과를 가져오며, 이 경우 다음과 같은 규칙이 적용된다.

  • 반환 값은 첫 번째 쿼리의 결과입니다.
  • 쿼리에서 오류가 발생하면 실행은 실패로 처리됩니다.
  • q1 q2 q3으로 구성된 쿼리에서 q1이 실행에 성공한 후 q2에서 오류가 발생하면 q1의 결과는 유효합니다. 즉, 이전에 성공한 쿼리 실행은 오류가 발생해도 롤백되지 않습니다.
  • 쿼리가 성공적으로 수행되면 cubrid_next_result()를 이용하여 두 번째 쿼리의 결과를 얻을 수 있다.

첫 번째 인수가 cubrid_prepare() 함수를 실행하기 위한 request_identifier인 경우 CUBRID_ASYNC 옵션만 지정할 수 있다.


매개변수

conn_identifier
연결 식별자입니다.
sql
실행할 SQL.
option
쿼리 실행 옵션 CUBRID_INCLUDE_OID, CUBRID_ASYNC, CUBRID_EXEC_QUERY_ALL.
request_identifier
cubrid_prepare() 식별자.

반환 값

프로세스가 성공하고 첫 번째 매개변수가 conn_identifier인 경우 요청 식별자. 프로세스가 성공하고 첫 번째 인수가 request_identifier이면 true이고, 실패하면 false입니다.


변경 로그

버전 설명
8.4.0 새 옵션 CUBRID_EXEC_QUERY_ALL을 추가합니다.

Examples

예제 #1 cubrid_execute() 예제

                  
<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$result = cubrid_execute($conn, "SELECT code FROM event WHERE name='100m Butterfly' and gender='M'", CUBRID_ASYNC);
$row = cubrid_fetch_array($result, CUBRID_ASSOC);
$event_code = $row["code"];

cubrid_close_request($result);

$history_req = cubrid_prepare($conn, "SELECT * FROM history WHERE event_code=?");
cubrid_bind($history_req, 1, $event_code, "number");
cubrid_execute($history_req);

printf("%-20s %-9s %-10s %-5s\n", "athlete", "host_year", "score", "unit");
while ($row = cubrid_fetch_array($history_req, CUBRID_ASSOC)) {
    printf("%-20s %-9s %-10s %-5s\n",
        $row["athlete"], $row["host_year"], $row["score"], $row["unit"]);
}

cubrid_close_request($history_req);

cubrid_disconnect($conn);
?>
                  
                

위의 예는 다음을 출력합니다.

athlete              host_year score      unit
Phelps Michael       2004      51.25      time
                

기타