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() используется для привязки значений к указанным меткам, либо знакам вопроса, в SQL-запросе, заданном cubrid_prepare(). Если не задан параметр bind_value_type, то будет использоваться строковый тип.

Замечание:

Если привязываемые данные имеют тип BLOB/CLOB, CUBRID попытается использовать их как потоки PHP. Если фактическое привязываемое значение не является потоком, то CUBRID конвертирует его в строку и будет считать полным путём к файлу, где эти данные лежат.

Если тип данных, которые будут связаны явно является ENUM, то параметр bind_value должен быть элементом ENUM заданным в виде строки.

В окружении сегмента CUBRID, bind_value_type должен быть включён в функцию cubrid_bind().

В следующей таблице приведены типы замещающих значений.

Привязка типов в CUBRID
Уровень поддержки Тип привязки Соответствующий 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() - Выполняет подготовленный SQL-оператор
  • cubrid_prepare() - Подготавливает SQL-выражение к выполнению

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top