cubrid_execute 함수는 주어진 SQL 문을 실행하는 데 사용되며, conn_identifier와 SQL을 이용하여 질의를 실행하고 생성된 요청 식별자를 반환한다. 파라미터 바인딩이 필요 없는 경우에 간단하게 질의를 수행할 때 적절한 방법이다.
cubrid_prepare()와 cubrid_bind()를 통해 prepared statement를 수행할 때도 cubrid_execute를 이용하며, 이때 요구되는 인자는 req_identifier와 option이다.
질의 수행 후 행의 OID를 가져올 것인지와 비동기 모드 질의를 수행할지를 결정할 때 option 인수를 사용할 수 있다. CUBRID_INCLUDE_OID와 CUBRID_ASYNC를 비트 OR 연산자( | )를 사용해서 지정할 수 있으며, 여러 SQL 문을 수행하려면 CUBRID_EXEC_QUERY_ALL을 지정할 수 있다. 지정하지 않으면 아무것도 선택되지 않는다.
CUBRID_EXEC_QUERY_ALL을 지정하면, 질의 결과를 탐색하는 데 동기화 모드(sync_mode)가 사용되어 다음 규칙이 적용된다.
cubrid_prepare를 수행하기 위한 req_identifier가 첫 번째 인자일 경우, CUBRID_ASYNC나 CUBRID_EXEC_QUERY_ALL만 옵션으로 사용할 수 있다.
resource cubrid_execute (resource $conn_identifier, string $SQL [, int $option])
bool cubrid_execute (resource $req_identifier[, int $option])
<?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);
?>
The above example will output:
athlete host_year score unit
Phelps Michael 2004 51.25 time