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_type
은 cubrid_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);
}
?>
기타
- cubrid_execute() - 준비된 SQL 문 실행
- cubrid_prepare() - 실행할 SQL 문 준비