The cubrid_bind function substitutes a value for a variable of the cubrid_prepare() with parameters, a various types in PHP and corresponding types in SQL. If bind_value_type is not given, string will be the default. The following table shows the types of substitute values:
Support |
Bind type |
Corresponding SQL type |
---|---|---|
Supported |
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 |
|
Not supported |
SET |
SET |
MULTISET |
MULTISET |
|
SEQUENCE |
SEQUENCE |
bool cubrid_bind(resource $req_identifier,mixed $bind_param, mixed $bind_value[,string $bind_value_type])
Note If data to be bound is BLOB/CLOB, CUBRID will map the data as a PHP stream, which introduces a unified approach to the handling of files and sockets in PHP extension. If the actually bind value type is not stream, CUBRID will convert it to string.
<?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);
?>
The above example will output:
--- 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
<?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);
?>
The above example will output:
Medal Type Stadium where most medals were ever won
Gold Olympic Aquatic Centre
Silver Olympic Aquatic Centre
Bronze Sydney Convention and Exhibition Centre
<?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, "blob");
cubrid_execute($req);
}
?>
<?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);
}
?>