cubrid_bind
(PECL CUBRID >= 8.3.0)
cubrid_bind — Vincular variables para una sentencia preparada como parámetros
Descripción
La función cubrid_bind() se usa para vincular valores a un marcador de posición nominado o signo de interrogación correspondiente en la sentencia SQL que fue pasada a cubrid_prepare(). Si no se da bind_value_type, string será lo predeterminado.
Note:
Si el tipo de información a ser vinculado es BLOB/CLOB, CUBRID intentará mapear la información como un flujo de PHP. Si el tipo real de valor vinculado no es un flujo, CUBRID intentará convertirlo a cadena, y usarlo como la ruta completa y el nombre de fichero de un fichero del sistema de ficheros cliente.
La siguiente tabla muestra los tipos de los valores sustitutos.
| Soporte | Tipo de Vinculación | Tipo SQL Correspondiente |
|---|---|---|
| Soportado | 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 | |
| BLOB | BLOB | |
| CLOB | CLOB | |
| NULL | NULL | |
| No soportado | SET | SET |
| MULTISET | MULTISET | |
| SEQUENCE | SEQUENCE |
Parámetros
- req_identifier
-
Identificador de solicitud como resultado de cubrid_prepare()
- bind_param
-
Identificador de parámetro. Para una sentencia preparada usando marcadores de posición nominados, será un nombre de parámetro de la forma :nombre (Observe que el nombre sólo puede contener dígitos, letras y guiones de subrayado, pero no puede comenzar con un dígito. La longitud del nombre no puede ser mayor que 32). Para una sentencia preparada usando marcadores de posición de signo de interrogación, será la posición 1-indexada del parámetro.
- bind_value
-
Valor actual para el vínculo.
- bind_index
-
Un tipo de valor a vincular. (Es omitido por defecto. Así, el sistema internamente usa una cadena por omisión. Sin embargo, se necesita especificar el tipo exacto del valor como argumento cuando son de tipo NCHAR, BIT, o BLOB/CLOB).
Valores devueltos
TRUE, cuando el proceso tiene éxito.
FALSE, cuando el proceso no tiene éxito.
Historial de cambios
| Versión | Descripción |
|---|---|
| 8.4.0 | Añadido el soporte para parámetros nominados; Cuando se vincula el tipo de datos LOB, puede vincular directamente el nombre de la ruta del fichero. |
| 8.3.1 | Añadido el soporte para tipos de datos BLOB/CLOB. |
Ejemplos
Example #1 Ejemplo de cubrid_bind()
<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$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);
?>
El resultado del ejemplo sería:
--- 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
Example #2 Ejemplo de parámetro nominado de cubrid_bind()
<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$sql_stmt = <<<EOD
SELECT s.name FROM stadium s, game g
WHERE s.code = g.stadium_code AND g.medal = :medal_type
GROUP BY g.stadium_code ORDER BY count(medal) DESC LIMIT 1;
EOD;
$req = cubrid_prepare($conn, $sql_stmt);
printf("%-30s %s\n", "Medal Type", "Stadium where most medals were ever won");
cubrid_bind($req, ":medal_type", "G");
cubrid_execute($req);
$row = cubrid_fetch_assoc($req);
printf("%-30s %s\n", "Gold", $row["name"]);
cubrid_bind($req, ":medal_type", "S");
cubrid_execute($req);
$row = cubrid_fetch_assoc($req);
printf("%-30s %s\n", "Silver", $row["name"]);
cubrid_bind($req, ":medal_type", "B");
cubrid_execute($req);
$row = cubrid_fetch_assoc($req);
printf("%-30s %s\n", "Bronze", $row["name"]);
cubrid_close_request($req);
cubrid_disconnect($conn);
?>
El resultado del ejemplo sería:
Medal Type Stadium where most medals were ever won Gold Olympic Aquatic Centre Silver Olympic Aquatic Centre Bronze Sydney Convention and Exhibition Centre
Example #3 Ejemplo de BLOB/CLOB de cubrid_bind()
<?php
$con = cubrid_connect("localhost", 33000, "foo");
if ($con) {
$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 #4 Ejemplo de BLOB/CLOB de cubrid_bind()
<?php
$con = cubrid_connect("localhost", 33000, "foo");
if ($con) {
$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);
}
?>
Ver también
- cubrid_execute() - Ejecutar una sentencia SQL preparada
- cubrid_prepare() - Preparar una sentencia SQL para su ejecución
