cubrid_bind

(PECL CUBRID >= 8.3.0)

cubrid_bindСвязывает переменные с подготовленным запросом

Описание

bool cubrid_bind ( resource $req_identifier , int $bind_index , mixed $bind_value [, string $bind_value_type ] )

Функция 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($resultCUBRID_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_req1$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_reqCUBRID_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_req1$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($req1$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($req1"cubrid_logo.png""blob"); 
    
cubrid_execute($req);  
}
?>

Смотрите также