cubrid_bind

설명

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 타입의 메타 데이터(Locator), 즉 외부 저장소에 기록되는 파일 경로와 이름을 지닌다.

리턴 값
예제 1

<?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

예제 2

<?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

예제 3

<?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);  

}

?>

예제 4

<?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);  

}

?>

관련 항목