(PECL CUBRID >= 8.3.0)
cubrid_bind — Lie des valeurs à une requête préparée
$req_identifier
, int $bind_index
, mixed $bind_value
[, string $bind_value_type
] )
La fonction cubrid_bind() est utilisée pour lier
les valeurs à un marqueur correspondant, nommé ou non d'une requête SQL
qui a été passée à la fonction cubrid_prepare().
Si le paramètre bind_value_type
n'est pas fourni,
le type chaîne de caractères sera le type par défaut.
Note:
Si le type de données à lier est BLOB/CLOB, CUBRID tentera de lier les données comme un flux PHP. Si le type de la valeur à lier n'est pas un flux, CUBRID la convertira en chaîne, et l'utilisera comme chemin complet et nom de fichier sur le système de fichiers client.
Si le type de données à lier explicitement est ENUM, l'argument $bind_value doit être l'élément ENUM sous forme de chaîne de caractères.
En environnement partagé CUBRID, $bind_value_type doit être inclus dans la fonction cubrid_bind.
La liste suivante montre les types des valeurs substituées.
Support | Type de liage | Type correspondant SQL |
---|---|---|
Supporté | 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 | |
Not supported | SET | SET |
MULTISET | MULTISET | |
SEQUENCE | SEQUENCE |
req_identifier
Identifiant de requête, retourné par la fonction cubrid_prepare().
bind_index
Position des paramètres liés. Commence avec 1.
bind_value
Valeur actuelle à lier.
bind_value_type
Un type de valeur à lier (il est omis par défaut et en interne, le type chaîne de caractères sera utilisé. Cependant, vous devez spécifier le type exact de la valeur comme argument lorsque vous utilisez NCHAR, BIT, ou BLOB/CLOB).
TRUE
, lorsque l'opération a été réalisée avec succès.
FALSE
, lorsque l'opération a échoué.
Version | Description |
---|---|
8.3.1 | Ajout du support des types BLOB/CLOB. |
Exemple #1 Exemple avec 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);
?>
L'exemple ci-dessus va afficher :
--- 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
Exemple #2 Exemple avec cubrid_bind() et les types 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);
}
?>
Exemple #3 Exemple avec cubrid_bind() et 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);
}
?>