cubrid_bind

(PECL CUBRID >= 8.3.0)

cubrid_bind — 준비된 명령문에 변수를 매개변수로 바인딩


설명

cubrid_bind(
    resource $req_identifier,
    int $bind_index,
    mixed $bind_value,
    string $bind_value_type = ?
): bool
                

cubrid_bind() 함수는 cubrid_prepare()에 전달된 SQL 문에서 해당 이름 또는 물음표 플레이스홀더에 값을 바인딩하는 데 사용된다. bind_value_type을 지정하지 않으면 string이 기본값이 됩니다.

메모:

바인딩할 데이터의 유형이 BLOB/CLOB인 경우 CUBRID는 데이터를 PHP 스트림으로 매핑하려고 시도합니다. 실제 바인드 값 유형이 스트림이 아닌 경우 CUBRID는 이를 문자열로 변환하여 클라이언트 파일 시스템에 있는 파일의 전체 경로 및 파일 이름으로 사용한다.

명시적으로 바인딩할 데이터의 유형이 ENUM인 경우 bind_value 인수는 문자열 형식의 enum 요소여야 합니다.

CUBRID 샤드 환경에서 bind_value_typecubrid_bind() 함수에 포함되어야 한다.

다음 표는 대체 값의 유형을 보여줍니다.

CUBRID 바인딩 날짜 유형

지원 바인딩 유형 해당 SQL 유형
Supported STRING CHAR, VARCHAR
  NCHAR NCHAR, NVARCHAR
  BIT BIT, VARBIT
  NUMERIC or NUMBER SHORT, INT, NUMERIC
  FLOAT FLOAT
  DOUBLE DOUBLE
  TIME TIME
  DATE DATE
  TIMESTAMP TIMESTAMP
  OBJECT OBJECT
  ENUM ENUM
  BLOB BLOB
  CLOB CLOB
  NULL NULL
Not supported SET SET
  MULTISET MULTISET
  SEQUENCE SEQUENCE

매개변수

req_identifier
cubrid_prepare() 결과 요청 식별자.
bind_index
바인딩 매개변수의 위치입니다. 1부터 시작합니다.
bind_value
바인딩의 실제 값입니다.
bind_value_type
바인딩할 값의 유형입니다. (기본적으로 생략되어 있기 때문에 시스템 내부에서는 기본적으로 string을 사용한다. 단, NCHAR, BIT, BLOB/CLOB인 경우에는 정확한 값의 타입을 인자로 지정해야 한다).

반환 값

성공하면 true를, 실패하면 false를 반환합니다.


변경 로그

버전 설명
8.3.1 BLOB/CLOB 데이터 유형 지원이 추가되었습니다.

Examples

예제 #1 cubrid_bind() 예제

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

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

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

--- 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 cubrid_bind() BLOB/CLOB 예제

                  
<?php
$con = cubrid_connect("localhost", 33000, "demodb", "dba", "");
if ($con) {
    cubrid_execute($con,"DROP TABLE if exists php_cubrid_lob_test");
    cubrid_execute($con,"CREATE TABLE php_cubrid_lob_test (doc_content CLOB)");
    $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, "clob");
    cubrid_execute($req);
}
?>
                  
                

예제 #3 cubrid_bind() BLOB/CLOB 예제

                  
<?php
$con = cubrid_connect("localhost", 33000, "demodb", "dba", "");
if ($con) {
    cubrid_execute($con,"DROP TABLE if exists php_cubrid_lob_test");
    cubrid_execute($con,"CREATE TABLE php_cubrid_lob_test (image BLOB)");
    $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);
}
?>
                  
                

기타