cubrid_bind
(PECL CUBRID >= 8.3.0)
cubrid_bind — Связывает переменные с подготовленным запросом
Описание
$req_identifier
, int $bind_index
, mixed $bind_value
, string $bind_value_type
= ?
) : bool
Функция cubrid_bind() используется для привязки значений к указанным
меткам, либо знакам вопроса, в SQL-запросе, заданном cubrid_prepare().
Если не задан параметр bind_value_type
, то будет использоваться
строковый тип.
Замечание:
Если привязываемые данные имеют тип BLOB/CLOB, CUBRID попытается использовать их как потоки PHP. Если фактическое привязываемое значение не является потоком, то CUBRID сконвертирует его в строку и будет считать полным путем к файлу, где эти данные лежат.
Если тип данных, которые будут связаны явно является ENUM, то параметр $bind_value должен быть элементом ENUM заданным в виде строки.
В окружении сегмента CUBRID, $bind_value_type должен быть включен в функцию cubrid_bind.
В следующей таблице приведены типы замещающих значений.
Уровень поддержки | Тип привязки | Соответствующий SQL-тип |
---|---|---|
Поддерживается | 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 | |
Не поддерживается | 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. |
Примеры
Пример #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() - Execute a prepared SQL statement
- cubrid_prepare() - Prepare a SQL statement for execution