<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.ibm-db2.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'function.db2-bind-param.php',
    1 => 'db2_bind_param',
    2 => 'Связывает переменную PHP с параметром SQL-выражения',
  ),
  'up' => 
  array (
    0 => 'ref.ibm-db2.php',
    1 => 'Функции IBM DB2',
  ),
  'prev' => 
  array (
    0 => 'function.db2-autocommit.php',
    1 => 'db2_autocommit',
  ),
  'next' => 
  array (
    0 => 'function.db2-client-info.php',
    1 => 'db2_client_info',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'reference/ibm_db2/functions/db2-bind-param.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.db2-bind-param" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">db2_bind_param</h1>
  <p class="verinfo">(PECL ibm_db2 &gt;= 1.0.0)</p><p class="refpurpose"><span class="refname">db2_bind_param</span> &mdash; <span class="dc-title">
   Связывает переменную PHP с параметром SQL-выражения
  </span></p>

 </div>
 <div class="refsect1 description" id="refsect1-function.db2-bind-param-description">
  <h3 class="title">Описание</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>db2_bind_param</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> <code class="parameter">$stmt</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$parameter_number</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$variable_name</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$parameter_type</code><span class="initializer"> = <strong><code><a href="ibm-db2.constants.php#constant.db2-param-in">DB2_PARAM_IN</a></code></strong></span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$data_type</code><span class="initializer"> = 0</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$precision</code><span class="initializer"> = -1</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$scale</code><span class="initializer"> = 0</span></span><br>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>


  <p class="simpara">
   Связывает переменную PHP с параметром SQL-выражения в ресурсе выражения,
   возвращаемом <span class="function"><a href="function.db2-prepare.php" class="function">db2_prepare()</a></span>. Эта функция даёт больший
   контроль над типом параметра, типом данных, точностью и масштабом для
   параметра, чем простая передача переменной как части необязательного
   входного массива в <span class="function"><a href="function.db2-execute.php" class="function">db2_execute()</a></span>.
  </p>

 </div>

 <div class="refsect1 parameters" id="refsect1-function.db2-bind-param-parameters">
  <h3 class="title">Список параметров</h3>
  <dl>
   
    <dt><code class="parameter">stmt</code></dt>
    <dd>
     <span class="simpara">
      Подготовленное выражение, возвращаемое <span class="function"><a href="function.db2-prepare.php" class="function">db2_prepare()</a></span>.
     </span>
    </dd>
   
   
    <dt><code class="parameter">parameter_number</code></dt>
    <dd>
     <span class="simpara">
      Задаёт позицию параметра, которая нумеруется с 1, в подготовленном
      выражении.
     </span>
    </dd>
   
   
   <dt><code class="parameter">variable_name</code></dt>
    <dd>
     <span class="simpara">
      Строка, определяющая имя переменной PHP для привязки к параметру,
      заданному <code class="parameter">parameter_number</code>.
     </span>
    </dd>
   
   
    <dt><code class="parameter">parameter_type</code></dt>
    <dd>
     <span class="simpara">
      Константа, которая определяет, должна ли переменная PHP быть привязана к
      параметру SQL как входной параметр (<strong><code><a href="ibm-db2.constants.php#constant.db2-param-in">DB2_PARAM_IN</a></code></strong>),
      выходной параметр (<strong><code><a href="ibm-db2.constants.php#constant.db2-param-out">DB2_PARAM_OUT</a></code></strong>) или как параметр,
      который принимает ввод и возвращает вывод (<strong><code><a href="ibm-db2.constants.php#constant.db2-param-inout">DB2_PARAM_INOUT</a></code></strong>).
      Чтобы избежать перегрузки памяти, можно также указать
      <strong><code><a href="ibm-db2.constants.php#constant.db2-param-file">DB2_PARAM_FILE</a></code></strong>, чтобы привязать переменную PHP к имени
      файла, который содержит данные большого объекта (BLOB, CLOB или DBCLOB).
     </span>
    </dd>
   
   
    <dt><code class="parameter">data_type</code></dt>
    <dd>
     <span class="simpara">
      Константа, указывающая тип данных SQL, с которым должна быть связана
      переменная PHP: <strong><code><a href="ibm-db2.constants.php#constant.db2-binary">DB2_BINARY</a></code></strong>, <strong><code><a href="ibm-db2.constants.php#constant.db2-char">DB2_CHAR</a></code></strong>,
      <code class="literal">DB2_DOUBLE</code> или <strong><code><a href="ibm-db2.constants.php#constant.db2-long">DB2_LONG</a></code></strong>.
     </span>
    </dd>
   
   
    <dt><code class="parameter">precision</code></dt>
    <dd>
     <span class="simpara">
      Задаёт точность, с которой переменная должна быть привязана к базе данных.
      Этот параметр также можно использовать для получения выходных значений
      XML из хранимых процедур. Неотрицательное значение указывает максимальный
      размер данных XML, которые будут извлечены из базы данных. Если этот
      параметр не используется, для получения выходного значения XML из
      хранимой процедуры предполагается значение по умолчанию 1 МБ.
     </span>
    </dd>
   
   
    <dt><code class="parameter">scale</code></dt>
    <dd>
     <span class="simpara">
      Задаёт масштаб, с которым переменная должна быть привязана к базе данных.
     </span>
    </dd>
   
  </dl>
 </div>

 <div class="refsect1 returnvalues" id="refsect1-function.db2-bind-param-returnvalues">
  <h3 class="title">Возвращаемые значения</h3>
  <p class="simpara">
   Функция возвращает <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, если выполнилась успешно, или <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>, если возникла ошибка.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.db2-bind-param-examples">
  <h3 class="title">Примеры</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Пример #1 Привязка переменных PHP к подготовленному выражению</strong></p>
    <div class="example-contents"><p>
     SQL-выражение в данном примере использует два входных параметра в
     предложении WHERE. Вызывается <span class="function"><strong>db2_bind_param()</strong></span>, чтобы
     связать две переменные PHP с соответствующими параметрами SQL. Обратите
     внимание, что переменные PHP не нужно объявлять или присваивать перед
     вызовом <span class="function"><strong>db2_bind_param()</strong></span>; в этом примере
     <code class="literal">$lower_limit</code> присваивается значение перед вызовом
     <span class="function"><strong>db2_bind_param()</strong></span>, а <code class="literal">$upper_limit</code>
     присваивается значение после вызова <span class="function"><strong>db2_bind_param()</strong></span>.
     Перед вызовом <span class="function"><a href="function.db2-execute.php" class="function">db2_execute()</a></span> переменные должны быть
     связаны, а параметрам, принимающим ввод, должно быть присвоено любое
     значение.
     <span class="function"><a href="function.db2-execute.php" class="function">db2_execute()</a></span>.
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$sql </span><span style="color: #007700">= </span><span style="color: #DD0000">'SELECT name, breed, weight FROM animals<br />    WHERE weight &gt; ? AND weight &lt; ?'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$database</span><span style="color: #007700">, </span><span style="color: #0000BB">$user</span><span style="color: #007700">, </span><span style="color: #0000BB">$password</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #0000BB">$sql</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Можно объявить переменную перед вызовом db2_bind_param()<br /></span><span style="color: #0000BB">$lower_limit </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">db2_bind_param</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #DD0000">"lower_limit"</span><span style="color: #007700">, </span><span style="color: #0000BB">DB2_PARAM_IN</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">db2_bind_param</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #DD0000">"upper_limit"</span><span style="color: #007700">, </span><span style="color: #0000BB">DB2_PARAM_IN</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Также можно объявить переменную после вызова db2_bind_param()<br /></span><span style="color: #0000BB">$upper_limit </span><span style="color: #007700">= </span><span style="color: #0000BB">15.0</span><span style="color: #007700">;<br /><br />if (</span><span style="color: #0000BB">db2_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">)) {<br />    while (</span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_fetch_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">)) {<br />        print </span><span style="color: #DD0000">"</span><span style="color: #007700">{</span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]}</span><span style="color: #DD0000">, </span><span style="color: #007700">{</span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]}</span><span style="color: #DD0000">, </span><span style="color: #007700">{</span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">]}</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />    }<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    
<div class="example-contents"><p>
 Результат выполнения приведённого примера:
</p></div>

    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Pook, cat, 3.2
Rickety Ride, goat, 9.7
Peaches, dog, 12.3</pre>
</div>
    </div>
   </div>
   <div class="example" id="example-2">
    <p><strong>Пример #2 Вызов хранимых процедур с параметрами IN и OUT</strong></p>
    <div class="example-contents"><p>
     Хранимая процедура match_animal в данном примере принимает три разных
     параметра:
     <ol type="1">
      <li class="listitem">
       <span class="simpara">
        входной параметр (IN), который принимает имя первого животного в
        качестве входных данных
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        параметр ввода-вывода (INOUT), который принимает имя второго животного
        в качестве входных данных и возвращает строку <code class="literal">TRUE</code>,
        если животное в базе данных совпадает с этим именем
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        выходной параметр (OUT), который возвращает сумму веса двух
        идентифицированных животных
       </span>
      </li>
     </ol>
     Кроме того, хранимая процедура возвращает набор результатов, состоящий из
     животных, перечисленных в алфавитном порядке, начиная с животного,
     соответствующего входному значению первого параметра, и заканчивая животным,
     соответствующим входному значению второго параметра.
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$sql </span><span style="color: #007700">= </span><span style="color: #DD0000">'CALL match_animal(?, ?, ?)'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$database</span><span style="color: #007700">, </span><span style="color: #0000BB">$user</span><span style="color: #007700">, </span><span style="color: #0000BB">$password</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #0000BB">$sql</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$name </span><span style="color: #007700">= </span><span style="color: #DD0000">"Peaches"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$second_name </span><span style="color: #007700">= </span><span style="color: #DD0000">"Rickety Ride"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$weight </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">db2_bind_param</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #DD0000">"name"</span><span style="color: #007700">, </span><span style="color: #0000BB">DB2_PARAM_IN</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">db2_bind_param</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #DD0000">"second_name"</span><span style="color: #007700">, </span><span style="color: #0000BB">DB2_PARAM_INOUT</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">db2_bind_param</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #DD0000">"weight"</span><span style="color: #007700">, </span><span style="color: #0000BB">DB2_PARAM_OUT</span><span style="color: #007700">);<br /><br />print </span><span style="color: #DD0000">"Values of bound parameters _before_ CALL:\n"</span><span style="color: #007700">;<br />print </span><span style="color: #DD0000">"  1: </span><span style="color: #007700">{</span><span style="color: #0000BB">$name</span><span style="color: #007700">}</span><span style="color: #DD0000"> 2: </span><span style="color: #007700">{</span><span style="color: #0000BB">$second_name</span><span style="color: #007700">}</span><span style="color: #DD0000"> 3: </span><span style="color: #007700">{</span><span style="color: #0000BB">$weight</span><span style="color: #007700">}</span><span style="color: #DD0000">\n\n"</span><span style="color: #007700">;<br /><br />if (</span><span style="color: #0000BB">db2_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">)) {<br />    print </span><span style="color: #DD0000">"Values of bound parameters _after_ CALL:\n"</span><span style="color: #007700">;<br />    print </span><span style="color: #DD0000">"  1: </span><span style="color: #007700">{</span><span style="color: #0000BB">$name</span><span style="color: #007700">}</span><span style="color: #DD0000"> 2: </span><span style="color: #007700">{</span><span style="color: #0000BB">$second_name</span><span style="color: #007700">}</span><span style="color: #DD0000"> 3: </span><span style="color: #007700">{</span><span style="color: #0000BB">$weight</span><span style="color: #007700">}</span><span style="color: #DD0000">\n\n"</span><span style="color: #007700">;<br /><br />    print </span><span style="color: #DD0000">"Results:\n"</span><span style="color: #007700">;<br />    while (</span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_fetch_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">)) {<br />        print </span><span style="color: #DD0000">"  </span><span style="color: #007700">{</span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]}</span><span style="color: #DD0000">, </span><span style="color: #007700">{</span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]}</span><span style="color: #DD0000">, </span><span style="color: #007700">{</span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">]}</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />    }<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    
<div class="example-contents"><p>
 Результат выполнения приведённого примера:
</p></div>

    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Values of bound parameters _before_ CALL:
  1: Peaches 2: Rickety Ride 3: 0

Values of bound parameters _after_ CALL:
  1: Peaches 2: TRUE 3: 22

Results:
  Peaches, dog, 12.3
  Pook, cat, 3.2
  Rickety Ride, goat, 9.7</pre>
</div>
    </div>
   </div>
   <div class="example" id="example-3">
    <p><strong>Пример #3 Вставка большого двоичного объекта (BLOB) напрямую из файла</strong></p>
    <div class="example-contents"><p>
     Данные для больших объектов обычно хранятся в файлах, таких как документы
     XML или аудиофайлы. Вместо того, чтобы считывать весь файл в переменную PHP
     и затем связывать эту переменную PHP с SQL-выражением, можно избежать
     некоторых накладных расходов на память, привязав файл напрямую к
     входному параметру SQL-выражения. В данном примере показано, как
     привязать файл напрямую к столбцу BLOB.
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #DD0000">"INSERT INTO animal_pictures(picture) VALUES (?)"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$picture </span><span style="color: #007700">= </span><span style="color: #DD0000">"/opt/albums/spook/grooming.jpg"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$rc </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_bind_param</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #DD0000">"picture"</span><span style="color: #007700">, </span><span style="color: #0000BB">DB2_PARAM_FILE</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$rc </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>

  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.db2-bind-param-seealso">
  <h3 class="title">Смотрите также</h3>
  <ul class="simplelist">
   <li><span class="function"><a href="function.db2-execute.php" class="function" rel="rdfs-seeAlso">db2_execute()</a> - Выполняет подготовленный SQL-запрос</span></li>
   <li><span class="function"><a href="function.db2-prepare.php" class="function" rel="rdfs-seeAlso">db2_prepare()</a> - Подготавливает SQL-запрос к выполнению</span></li>
  </ul>
 </div>


</div><?php manual_footer($setup); ?>