mirror of
https://github.com/php/doc-es.git
synced 2026-03-28 09:22:15 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@309890 c90b9560-bf6c-de11-be94-00142212c4b1
312 lines
10 KiB
XML
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
|
|
-->
|