cubrid_prepare 함수는 주어진 연결 식별자 프리컴파일(precompile)된 SQL 문을 나타내는 API 이다. SQL 문은, 프리컴파일되어 cubrid_prepare에 포함된다. 이것은 이 문장을 여러 차례 효율적으로 실행하는 목적으로 사용할 수 있고, Long Data를 처리하는데 효율적으로 사용할 수 있다. SQL 문은 단 하나만 올 수 있으며, 파라미터는 SQL 문의 적합한 위치에 물음표(?)를 삽입할 수 있다. 파라미터는 INSERT 문장의 VALUES 절이나 SQL 문의 WHERE 절에서 값을 대입하고자 할 위치에 추가한다. 물음표(?)에 값을 대입하려면 cubrid_bind를 사용해야 한다.
resource cubrid_prepare (resource $conn_identifier, string $prepare_stmt [, int $option])
<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$sql = <<<EOD
SELECT g.event_code, e.name
FROM game g
JOIN event e ON g.event_code=e.code
WHERE host_year = ? AND event_code NOT IN (SELECT event_code FROM game WHERE host_year=?) GROUP BY event_code;
EOD;
$req = cubrid_prepare($conn, $sql);
cubrid_bind($req, 1, 2004);
cubrid_bind($req, 2, 2000);
cubrid_execute($req);
$row_num = cubrid_num_rows($req);
printf("There are %d event that exits in 2004 olympic but not in 2000. For example:\n\n", $row_num);
printf("%-15s %s\n", "Event_code", "Event_name");
printf("----------------------------\n");
$row = cubrid_fetch_assoc($req);
printf("%-15d %s\n", $row["event_code"], $row["name"]);
$row = cubrid_fetch_assoc($req);
printf("%-15d %s\n", $row["event_code"], $row["name"]);
cubrid_disconnect($conn);
?>
The above example will output:
There are 27 event that exits in 2004 olympic but not in 2000. For example:
Event_code Event_name
----------------------------
20063 +91kg
20070 64kg