Dutch PHP Conference 2025 - Call For Papers

cubrid_bind

(PECL CUBRID >= 8.3.0)

cubrid_bindVincula variáveis a instruções preparadas como parâmetros

Descrição

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

A função cubrid_bind() é usada para vincular valores a marcadores nomeados ou de ponto de interrogação na instrução SQL passada a cubrid_prepare(). Se bind_value_type não for informado, string será o tipo padrão.

Nota:

Se o tipo de dado a ser vinculado for BLOB/CLOB, o CUBRID tentará mapear o dado como um fluxo do PHP. Se o tipo real do valor não for um fluxo, o CUBRID o converterá para string e o usará como caminho completo e nome do arquino no sistema de arquivos do cliente.

Se o tipo de dado a ser vinculado explicitamente for ENUM, o argumento bind_value deve ser o elemento da enumeração que estará no formato de string.

No ambiente compartilhado CUBRID, o bind_value_type precisa ser incluído na função cubrid_bind().

A tabela a seguir mostra os tipos de valores substitutos.

Tipos de dados vinculados CUBRID
Suporte Tipo Vinculado Tipo SQL Correspondente
Suportado STRING CHAR, VARCHAR
  NCHAR NCHAR, NVARCHAR
  BIT BIT, VARBIT
  NUMERIC ou NUMBER SHORT, INT, NUMERIC
  FLOAT FLOAT
  DOUBLE DOUBLE
  TIME TIME
  DATE DATE
  TIMESTAMP TIMESTAMP
  OBJECT OBJECT
  ENUM ENUM
  BLOB BLOB
  CLOB CLOB
  NULL NULL
Não Suportado SET SET
  MULTISET MULTISET
  SEQUENCE SEQUENCE

Parâmetros

req_identifier

Identificador de requisição como um resultado de cubrid_prepare().

bind_index

Localização dos parâmetros de vinculação. Inicia com 1.

bind_value

Actual value for binding.

bind_value_type

Um tipo de valor a vincular. (Omitido por padrão. Assim, o sistema usa string internamente por padrão. No entanto, é necessário especificar o tipo exato do valor como um argumento quando ele for NCHAR, BIT, ou BLOB/CLOB).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.3.1 Adicionado suporte aos tipos de dados BLOB/CLOB.

Exemplos

Exemplo #1 Exemplo de 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("--- Time dos Sonhos (Time de basquete olímpico masculino dos Estados Unidos de 1992) ---\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);
?>

O exemplo acima produzirá:

--- Time dos Sonhos (Time de basquete olímpico masculino dos Estados Unidos de 1992) ---
Stockton John
Robinson David
Pippen Scottie
Mullin C.
Malone Karl
Laettner C.
Jordan Michael
Johnson Earvin
Ewing Patrick
Drexler Clyde
Bird Larry
Barkley Charles

Exemplo #2 Exemplo de cubrid_bind() com 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);
}
?>

Exemplo #3 Exemplo de cubrid_bind() com BLOB

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

Veja Também

add a note

User Contributed Notes

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