cubrid_bind 함수는 파라미터가 표시된 cubrid_prepare()의 변수에 값을 대입할 목적으로 사용된다. 바인드 타입이 주어지지 않으면 기본값은 STRING이다. 대입 값의 타입은 다음 표와 같다.
구분 |
바인드 타입 |
대응 SQL 타입 |
---|---|---|
지원 |
STRING |
CHAR, VARCHAR |
NCHAR |
NCHAR, NVARCHAR |
|
BIT |
BIT, VARBIT |
|
NUMERIC 또는 NUMBER |
SHORT, INT, NUMERIC |
|
FLOAT |
FLOAT |
|
DOUBLE |
DOUBLE |
|
TIME |
TIME |
|
DATE |
DATE |
|
TIMESTAMP |
TIMESTAMP |
|
OBJECT |
OBJECT |
|
BLOB |
BLOB |
|
CLOB |
CLOB |
|
NULL |
NULL |
|
미지원 |
SET |
SET |
MULTISET |
MULTISET |
|
SEQUENCE |
SEQUENCE |
bool cubrid_bind (resource $req_identifier, mixed $bind_param, mixed $bind_value [,string $bind_value_type])
참고 데이터가 BLOB/CLOB 타입으로 바인딩되면, CUBRID는 데이터를 PHP 스트림(stream)으로 매핑한다. PHP 스트림은 PHP extension에서 파일과 소켓을 핸들링하는 일반적인 접근 방법이다. 바인딩할 타입의 실제 값이 스트림이 아니면 문자열(string)으로 반환하는데, 이 문자열은 BLOB/CLOB 타입의 외부 저장소에 기록되는 파일 경로와 이름을 지닌다.
<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT code FROM event WHERE sports='Basketball' and gender='M'");
$row = cubrid_fetch_array($result, CUBRID_ASSOC);
$event_code = $row["code"];
cubrid_close_request($result);
$game_req = cubrid_prepare($conn, "SELECT athlete_code FROM game WHERE host_year=1992 and event_code=? and nation_code='USA'");
cubrid_bind($game_req, 1, $event_code, "number");
cubrid_execute($game_req);
printf("--- Dream Team (1992 United States men's Olympic basketball team) ---\n");
while ($athlete_code = cubrid_fetch_array($game_req, CUBRID_NUM)) {
$athlete_req = cubrid_prepare($conn, "SELECT name FROM athlete WHERE code=? AND nation_code='USA' AND event='Basketball' AND gender='M'");
cubrid_bind($athlete_req, 1, $athlete_code[0], "number");
cubrid_execute($athlete_req);
$row = cubrid_fetch_assoc($athlete_req);
printf("%s\n", $row["name"]);
}
cubrid_close_request($game_req);
cubrid_close_request($athlete_req);
cubrid_disconnect($conn);
?>
The above example will output:
--- Dream Team (1992 United States men's Olympic basketball team) ---
Stockton John
Robinson David
Pippen Scottie
Mullin C.
Malone Karl
Laettner C.
Jordan Michael
Johnson Earvin
Ewing Patrick
Drexler Clyde
Bird Larry
Barkley Charles
<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$sql_stmt = <<<EOD
SELECT s.name FROM stadium s, game g
WHERE s.code = g.stadium_code AND g.medal = :medal_type
GROUP BY g.stadium_code ORDER BY count(medal) DESC LIMIT 1;
EOD;
$req = cubrid_prepare($conn, $sql_stmt);
printf("%-30s %s\n", "Medal Type", "Stadium where most medals were ever won");
cubrid_bind($req, ":medal_type", "G");
cubrid_execute($req);
$row = cubrid_fetch_assoc($req);
printf("%-30s %s\n", "Gold", $row["name"]);
cubrid_bind($req, ":medal_type", "S");
cubrid_execute($req);
$row = cubrid_fetch_assoc($req);
printf("%-30s %s\n", "Silver", $row["name"]);
cubrid_bind($req, ":medal_type", "B");
cubrid_execute($req);
$row = cubrid_fetch_assoc($req);
printf("%-30s %s\n", "Bronze", $row["name"]);
cubrid_close_request($req);
cubrid_disconnect($conn);
?>
The above example will output:
Medal Type Stadium where most medals were ever won
Gold Olympic Aquatic Centre
Silver Olympic Aquatic Centre
Bronze Sydney Convention and Exhibition Centre
<?php
$con = cubrid_connect("localhost", 33000, "foo");
if ($con) {
$sql = "INSERT INTO php_cubrid_lob_test(doc_content) VALUES(?)";
$req = cubrid_prepare($con, $sql);
$fp = fopen("book.txt", "rb");
cubrid_bind($req, 1, $fp, "blob");
cubrid_execute($req);
}
?>
<?php
$con = cubrid_connect("localhost", 33000, "foo");
if ($con) {
$sql = "INSERT INTO php_cubrid_lob_test(image) VALUES(?)";
$req = cubrid_prepare($con, $sql);
cubrid_bind($req, 1, “cubrid_logo.png”, "blob");
cubrid_execute($req);
}
?>