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