1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-28 09:22:15 +01:00
Files
archived-doc-es/reference/ibm_db2/functions/db2-bind-param.xml
Jesús Ruiz-Ayúcar Vázquez 0f01c591d8 Incorporo traducciones db2, y actualizo wrappers, amqp y mas
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@309890 c90b9560-bf6c-de11-be94-00142212c4b1
2011-04-01 19:59:17 +00:00

312 lines
10 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: chuso Status: ready -->
<!-- Generated by xml_proto.php v2.2. Found in /scripts directory of phpdoc. -->
<refentry xml:id="function.db2-bind-param" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>db2_bind_param</refname>
<refpurpose>
Vincula una variable PHP a un parámetro de una sentencia SQL
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>db2_bind_param</methodname>
<methodparam><type>resource</type><parameter>stmt</parameter></methodparam>
<methodparam><type>int</type><parameter>parameter-number</parameter></methodparam>
<methodparam><type>string</type><parameter>variable-name</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>parameter-type</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>data-type</parameter><initializer>0</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>precision</parameter><initializer>-1</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>scale</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
Vincula una variabel PHP a una sentencia SQL de un recurso devuelto
por <function>db2_prepare</function>. 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 <function>db2_execute</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>stmt</parameter></term>
<listitem>
<para>
Sentencia preparada devuelta por <function>db2_prepare</function>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>parameter-number</parameter></term>
<listitem>
<para>
Especifica la posición del parámetro en la sentencia preparada, utilizando
1 como primera posición.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>variable-name</parameter></term>
<listitem>
<para>
String con el nombre de la variabel PHP que se vinculará
al parámetro especificado por <parameter>parameter-number</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>parameter-type</parameter></term>
<listitem>
<para>
Constante que especifica si la variable PHP debe vincularse al parámetro
SQL como un parámetro de entrada (<literal>DB2_PARAM_IN</literal>),
de salida (<literal>DB2_PARAM_OUT</literal>), o como un parámetro
que acepta entrada y salida
(<literal>DB2_PARAM_INOUT</literal>). Para evitar fugas de memoria, puede
especificarse <literal>DB2_PARAM_FILE</literal> para vincular la variable PHP
al nombre de un fichero que contiene objetos de gran tamaño (BLOB, CLOB,
o DBCLOB).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data-type</parameter></term>
<listitem>
<para>
Constante que especifica el tipo de dato SQL de la variable PHP que
se vincula: de entre <literal>DB2_BINARY</literal>,
<literal>DB2_CHAR</literal>, <literal>DB2_DOUBLE</literal>, o
<literal>DB2_LONG</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>precision</parameter></term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>scale</parameter></term>
<listitem>
<para>
Especifica la escala de la variable que se vinculará a la
base de datos.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Vinculando variables PHP a sentencias preparadas</title>
<para>
La sentencia SQL del siguiente ejemplo utiliza dos parámetros de entrada en
la cláusula WHERE. Invocamos <function>db2_bind_param</function> 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
<function>db2_bind_param</function>; en el ejemplo, se asigna un valor a
<literal>$lower_limit</literal> antes de llamar a
<function>db2_bind_param</function>, a diferencia de <literal>$upper_limit</literal>,
donde el valor se asigna tras llamar a
<function>db2_bind_param</function>. 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
<function>db2_execute</function>.
</para>
<programlisting role="php">
<![CDATA[
<?php
$sql = 'SELECT name, breed, weight FROM animals
WHERE weight > ? 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";
}
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Pook, cat, 3.2
Rickety Ride, goat, 9.7
Peaches, dog, 12.3
]]>
</screen>
</example>
<example>
<title>Llamada a procedimientos almacenados con parámetros de Entrada y Salida</title>
<para>
El procedimiento almacenado match_animal del siguiente ejemplo acepta
tres parámetros:
<orderedlist>
<listitem>
<para>
un parámetro (IN) de entrada que acepta el nombre del primer animal como
entrada
</para>
</listitem>
<listitem>
<para>
un parámetro (INOUT) de entrada-salida que acepta el nombre del segundo
animal como entrada y devuelve el string <literal>TRUE</literal> si coincidiera
algún animal de la base de datos
</para>
</listitem>
<listitem>
<para>
un parámetro (OUT) de salida que devuelve la suma del peso de los dos
animales identificados
</para>
</listitem>
</orderedlist>
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.
</para>
<programlisting role="php">
<![CDATA[
<?php
$sql = 'CALL match_animal(?, ?, ?)';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);
$name = "Peaches";
$second_name = "Rickety Ride";
$weight = 0;
db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "second_name", DB2_PARAM_INOUT);
db2_bind_param($stmt, 3, "weight", DB2_PARAM_OUT);
print "Valores de los parámetros vinculados _antes_ de la llamada:\n";
print " 1: {$name} 2: {$second_name} 3: {$weight}\n\n";
if (db2_execute($stmt)) {
print "Valores de los parámetros vinculados _tras_ la llamada:\n";
print " 1: {$name} 2: {$second_name} 3: {$weight}\n\n";
print "Resultados:\n";
while ($row = db2_fetch_array($stmt)) {
print " {$row[0]}, {$row[1]}, {$row[2]}\n";
}
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Valores de los parámetros vinculados _antes_ de la llamada:
1: Peaches 2: Rickety Ride 3: 0
Valores de los parámetros vinculados _tras_ la llamada:
1: Peaches 2: TRUE 3: 22
Resultados:
Peaches, dog, 12.3
Pook, cat, 3.2
Rickety Ride, goat, 9.7
]]>
</screen>
</example>
<example>
<title>Insertando un objeto extenso binario (BLOB) directamente desde un fichero</title>
<para>
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.
</para>
<programlisting role="php">
<![CDATA[
<?php
$stmt = db2_prepare($conn, "INSERT INTO animal_pictures(picture) VALUES (?)");
$picture = "/opt/albums/spook/grooming.jpg";
$rc = db2_bind_param($stmt, 1, "picture", DB2_PARAM_FILE);
$rc = db2_execute($stmt);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>db2_execute</function></member>
<member><function>db2_prepare</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->