db2_bind_param
Vincula una variable PHP a un parámetro de una sentencia SQL
&reftitle.description;
booldb2_bind_param
resourcestmt
intparameter-number
stringvariable-name
intparameter-type
intdata-type0
intprecision-1
intscale0
Vincula una variabel PHP a una sentencia SQL de un recurso devuelto
por db2_prepare. Esta función proporciona más
control sobre el tipo de parámetro, tipo de dato, procesión, y escala del
parámetro que cuando se pasa la variabel como parte del array de entrada
opcional en db2_execute.
&reftitle.parameters;
stmt
Sentencia preparada devuelta por db2_prepare.
parameter-number
Especifica la posición del parámetro en la sentencia preparada, utilizando
1 como primera posición.
variable-name
String con el nombre de la variabel PHP que se vinculará
al parámetro especificado por parameter-number.
parameter-type
Constante que especifica si la variable PHP debe vincularse al parámetro
SQL como un parámetro de entrada (DB2_PARAM_IN),
de salida (DB2_PARAM_OUT), o como un parámetro
que acepta entrada y salida
(DB2_PARAM_INOUT). Para evitar fugas de memoria, puede
especificarse DB2_PARAM_FILE para vincular la variable PHP
al nombre de un fichero que contiene objetos de gran tamaño (BLOB, CLOB,
o DBCLOB).
data-type
Constante que especifica el tipo de dato SQL de la variable PHP que
se vincula: de entre DB2_BINARY,
DB2_CHAR, DB2_DOUBLE, o
DB2_LONG.
precision
Especifica la precisión con la que se debe vincular a la base de
datos. Este parámetro se puede utilizar también para consultar valores de
salida XML de procedimientos almacenados. Un valor no negativo especifica el tamaño
máximo de datos XML que se consultarán de la base de datos. Si este parámetro no se
utiliza, se asumirá por omisión 1MB para consultar el valor de salida XML
del procedimiento almacenado.
scale
Especifica la escala de la variable que se vinculará a la
base de datos.
&reftitle.returnvalues;
&return.success;
&reftitle.examples;
Vinculando variables PHP a sentencias preparadas
La sentencia SQL del siguiente ejemplo utiliza dos parámetros de entrada en
la cláusula WHERE. Invocamos db2_bind_param para vincular dos
variables PHP a los correspondientes parámetros SQL. Debe tenerse en cuenta que no es
necesario que se hayan declarado o asignado las variables PHP antes de llamar a
db2_bind_param; en el ejemplo, se asigna un valor a
$lower_limit antes de llamar a
db2_bind_param, a diferencia de $upper_limit,
donde el valor se asigna tras llamar a
db2_bind_param. Se deben vincular las variables y, para
parámetros que acepten entradas, debe asignarse el valor antes de llamar a
parameters that accept input, must have any value assigned, before calling
db2_execute.
? AND weight < ?';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);
// Podemos declarar la variable antes de llamar a db2_bind_param()
$lower_limit = 1;
db2_bind_param($stmt, 1, "lower_limit", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "upper_limit", DB2_PARAM_IN);
// Podemos declarar la variable tras llamar a db2_bind_param()
$upper_limit = 15.0;
if (db2_execute($stmt)) {
while ($row = db2_fetch_array($stmt)) {
print "{$row[0]}, {$row[1]}, {$row[2]}\n";
}
}
?>
]]>
&example.outputs;
Llamada a procedimientos almacenados con parámetros de Entrada y Salida
El procedimiento almacenado match_animal del siguiente ejemplo acepta
tres parámetros:
un parámetro (IN) de entrada que acepta el nombre del primer animal como
entrada
un parámetro (INOUT) de entrada-salida que acepta el nombre del segundo
animal como entrada y devuelve el string TRUE si coincidiera
algún animal de la base de datos
un parámetro (OUT) de salida que devuelve la suma del peso de los dos
animales identificados
Además, el procedimiento almacenado devuelve el juego de resultados que corresponde
a la lista de animales en orden alfabética comenzando por el animal
del valor de entrada del primer parámetro, y terminando en el animal
correspondiente al valor de entrada del segundo parámetro.
]]>
&example.outputs;
Insertando un objeto extenso binario (BLOB) directamente desde un fichero
Los datos de objetos extensos se suelen almacenar en ficheros, como por ejemplo documentos
XML o ficheros de audio. En lugar de guardar el fichero completo en una variable
PHP, para después vincular ésta a una sentencia SQL, se puede evitar esta
sobrecarga de memoria vinculando directamente el fichero al parámetro de
entrada de la sentencia SQL. El siguiente ejemplo demuestra cómo vincular
directamente un fichero a una columna BLOB.
]]>
&reftitle.seealso;
db2_execute
db2_prepare