cubrid_bind
(PECL CUBRID >= 8.3.0)
cubrid_bind — Vincula variáveis a instruções preparadas como parâmetros
Descrição
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.
Note:
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.
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).
Registro de Alterações
Versão | Descrição |
---|---|
8.3.1 | Adicionado suporte aos tipos de dados BLOB/CLOB. |
Exemplos
Example #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
Example #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);
}
?>
Example #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
- cubrid_execute() - Executa uma instrução preparada SQL
- cubrid_prepare() - Prepara uma instrução SQL para execução