mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-18 22:06:57 +08:00
327 lines
20 KiB
HTML
327 lines
20 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
<title>Bind variables to a prepared statement as parameters</title>
|
|
</head>
|
|
<body class="docs"><div id="layout">
|
|
<div id="layout-content"><div id="function.cubrid-bind" class="refentry">
|
|
<div class="refnamediv">
|
|
<h1 class="refname">cubrid_bind</h1>
|
|
<p class="verinfo">(PECL CUBRID >= 8.3.0)</p><p class="refpurpose"><span class="refname">cubrid_bind</span> — <span class="dc-title">Bind variables to a prepared statement as parameters</span></p>
|
|
|
|
</div>
|
|
|
|
<div class="refsect1 description" id="refsect1-function.cubrid-bind-description">
|
|
<h3 class="title">说明</h3>
|
|
<div class="methodsynopsis dc-description">
|
|
<span class="methodname"><strong>cubrid_bind</strong></span>
|
|
( <span class="methodparam"><span class="type">resource</span> <code class="parameter">$req_identifier</code></span>
|
|
, <span class="methodparam"><span class="type">int</span> <code class="parameter">$bind_index</code></span>
|
|
, <span class="methodparam"><span class="type"><a href="language.pseudo-types.html#language.types.mixed" class="type mixed">mixed</a></span> <code class="parameter">$bind_value</code></span>
|
|
[, <span class="methodparam"><span class="type">string</span> <code class="parameter">$bind_value_type</code></span>
|
|
] ) : <span class="type">bool</span></div>
|
|
|
|
<p class="para rdfs-comment">
|
|
The <span class="function"><strong>cubrid_bind()</strong></span> function is used to bind values to a
|
|
corresponding named or question mark placeholder in the SQL statement that
|
|
was passed to <span class="function"><a href="cubrid_prepare.html" class="function">cubrid_prepare()</a></span>. If
|
|
<code class="parameter">bind_value_type</code> is not given, string will be the
|
|
default.
|
|
</p>
|
|
<blockquote class="note"><p><strong class="note">Note</strong>:
|
|
<p class="para">
|
|
If the type of data to be bound is BLOB/CLOB, CUBRID will try to map the
|
|
data as a PHP stream. If the actually bind value type is not stream,
|
|
CUBRID will convert it to string, and use it as the full path and file
|
|
name of a file on the client filesystem.
|
|
</p>
|
|
<p class="para">
|
|
If the type of data to be bound explicitly is ENUM, the $bind_value
|
|
argument should be the enum element which is in string format.
|
|
</p>
|
|
<p class="para">
|
|
In CUBRID shard envrioment, the $bind_value_type must be included in
|
|
the cubrid_bind function.
|
|
</p>
|
|
</p></blockquote>
|
|
<p class="para">
|
|
The following table shows the types of substitute values.
|
|
</p>
|
|
<p class="para">
|
|
<table class="doctable table">
|
|
<caption><strong>CUBRID Bind Date Types</strong></caption>
|
|
|
|
<thead>
|
|
<tr>
|
|
<th>Support</th>
|
|
<th>Bind Type</th>
|
|
<th>Corresponding SQL Type</th>
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody class="tbody">
|
|
<tr>
|
|
<td>Supported</td>
|
|
<td>STRING</td>
|
|
<td>CHAR, VARCHAR</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="empty"> </td>
|
|
<td>NCHAR</td>
|
|
<td>NCHAR, NVARCHAR</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="empty"> </td>
|
|
<td>BIT</td>
|
|
<td>BIT, VARBIT</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="empty"> </td>
|
|
<td>NUMERIC or NUMBER</td>
|
|
<td>SHORT, INT, NUMERIC</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="empty"> </td>
|
|
<td>FLOAT</td>
|
|
<td>FLOAT</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="empty"> </td>
|
|
<td>DOUBLE</td>
|
|
<td>DOUBLE</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="empty"> </td>
|
|
<td>TIME</td>
|
|
<td>TIME</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="empty"> </td>
|
|
<td>DATE</td>
|
|
<td>DATE</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="empty"> </td>
|
|
<td>TIMESTAMP</td>
|
|
<td>TIMESTAMP</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="empty"> </td>
|
|
<td>OBJECT</td>
|
|
<td>OBJECT</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="empty"> </td>
|
|
<td>ENUM</td>
|
|
<td>ENUM</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="empty"> </td>
|
|
<td>BLOB</td>
|
|
<td>BLOB</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="empty"> </td>
|
|
<td>CLOB</td>
|
|
<td>CLOB</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="empty"> </td>
|
|
<td>NULL</td>
|
|
<td>NULL</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Not supported</td>
|
|
<td>SET</td>
|
|
<td>SET</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="empty"> </td>
|
|
<td>MULTISET</td>
|
|
<td>MULTISET</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="empty"> </td>
|
|
<td>SEQUENCE</td>
|
|
<td>SEQUENCE</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</p>
|
|
</div>
|
|
|
|
|
|
<div class="refsect1 parameters" id="refsect1-function.cubrid-bind-parameters">
|
|
<h3 class="title">参数</h3>
|
|
<p class="para">
|
|
<dl>
|
|
|
|
|
|
<dt>
|
|
<code class="parameter">req_identifier</code></dt>
|
|
|
|
<dd>
|
|
<p class="para">Request identifier as a result of
|
|
<span class="function"><a href="cubrid_prepare.html" class="function">cubrid_prepare()</a></span>.</p></dd>
|
|
|
|
|
|
|
|
<dt>
|
|
<code class="parameter">bind_index</code></dt>
|
|
|
|
<dd>
|
|
<p class="para">Location of binding parameters. It starts with 1.</p></dd>
|
|
|
|
|
|
|
|
<dt>
|
|
<code class="parameter">bind_value</code></dt>
|
|
|
|
<dd>
|
|
<p class="para">Actual value for binding.</p></dd>
|
|
|
|
|
|
|
|
<dt>
|
|
<code class="parameter">bind_value_type</code></dt>
|
|
|
|
<dd>
|
|
<p class="para">A type of the value to bind. (It is omitted by default.
|
|
Thus, the system internally uses string by default. However, you need to
|
|
specify the exact type of the value as an argument when they are NCHAR,
|
|
BIT, or BLOB/CLOB).</p></dd>
|
|
|
|
|
|
</dl>
|
|
|
|
</p>
|
|
</div>
|
|
|
|
|
|
<div class="refsect1 returnvalues" id="refsect1-function.cubrid-bind-returnvalues">
|
|
<h3 class="title">返回值</h3>
|
|
<p class="para">
|
|
<strong><code>TRUE</code></strong>, when process is successful.
|
|
</p>
|
|
<p class="para">
|
|
<strong><code>FALSE</code></strong>, when process is unsuccessful.
|
|
</p>
|
|
</div>
|
|
|
|
|
|
<div class="refsect1 changelog" id="refsect1-function.cubrid-bind-changelog">
|
|
<h3 class="title">更新日志</h3>
|
|
<p class="para">
|
|
<table class="doctable informaltable">
|
|
|
|
<thead>
|
|
<tr>
|
|
<th>版本</th>
|
|
<th>说明</th>
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody class="tbody">
|
|
<tr>
|
|
<td>8.3.1</td>
|
|
<td>
|
|
Added BLOB/CLOB data types support.
|
|
</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</p>
|
|
</div>
|
|
|
|
|
|
<div class="refsect1 examples" id="refsect1-function.cubrid-bind-examples">
|
|
<h3 class="title">范例</h3>
|
|
<div class="example" id="example-1088">
|
|
<p><strong>Example #1 <span class="function"><strong>cubrid_bind()</strong></span> example</strong></p>
|
|
<div class="example-contents">
|
|
<div class="phpcode"><pre><span style="color: #000000">
|
|
<span style="color: #0000BB"><?php<br />$conn </span><span style="color: #007700">= </span><span style="color: #0000BB">cubrid_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">"localhost"</span><span style="color: #007700">, </span><span style="color: #0000BB">33000</span><span style="color: #007700">, </span><span style="color: #DD0000">"demodb"</span><span style="color: #007700">, </span><span style="color: #DD0000">"dba"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">cubrid_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #DD0000">"SELECT code FROM event WHERE sports='Basketball' and gender='M'"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">cubrid_fetch_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">, </span><span style="color: #0000BB">CUBRID_ASSOC</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$event_code </span><span style="color: #007700">= </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #DD0000">"code"</span><span style="color: #007700">];<br /><br /></span><span style="color: #0000BB">cubrid_close_request</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$game_req </span><span style="color: #007700">= </span><span style="color: #0000BB">cubrid_prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #DD0000">"SELECT athlete_code FROM game WHERE host_year=1992 and event_code=? and nation_code='USA'"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">cubrid_bind</span><span style="color: #007700">(</span><span style="color: #0000BB">$game_req</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$event_code</span><span style="color: #007700">, </span><span style="color: #DD0000">"number"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">cubrid_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$game_req</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"--- Dream Team (1992 United States men's Olympic basketball team) ---\n"</span><span style="color: #007700">);<br />while (</span><span style="color: #0000BB">$athlete_code </span><span style="color: #007700">= </span><span style="color: #0000BB">cubrid_fetch_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$game_req</span><span style="color: #007700">, </span><span style="color: #0000BB">CUBRID_NUM</span><span style="color: #007700">)) {<br /> </span><span style="color: #0000BB">$athlete_req </span><span style="color: #007700">= </span><span style="color: #0000BB">cubrid_prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #DD0000">"SELECT name FROM athlete WHERE code=? AND nation_code='USA' AND event='Basketball' AND gender='M'"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">cubrid_bind</span><span style="color: #007700">(</span><span style="color: #0000BB">$athlete_req</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$athlete_code</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">], </span><span style="color: #DD0000">"number"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">cubrid_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$athlete_req</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">cubrid_fetch_assoc</span><span style="color: #007700">(</span><span style="color: #0000BB">$athlete_req</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"%s\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #DD0000">"name"</span><span style="color: #007700">]);<br />}<br /><br /></span><span style="color: #0000BB">cubrid_close_request</span><span style="color: #007700">(</span><span style="color: #0000BB">$game_req</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">cubrid_close_request</span><span style="color: #007700">(</span><span style="color: #0000BB">$athlete_req</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">cubrid_disconnect</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span>
|
|
</span>
|
|
</pre></div>
|
|
</div>
|
|
|
|
<div class="example-contents"><p>以上例程会输出:</p></div>
|
|
<div class="example-contents screen">
|
|
<div class="cdata"><pre>
|
|
--- Dream Team (1992 United States men's Olympic basketball team) ---
|
|
Stockton John
|
|
Robinson David
|
|
Pippen Scottie
|
|
Mullin C.
|
|
Malone Karl
|
|
Laettner C.
|
|
Jordan Michael
|
|
Johnson Earvin
|
|
Ewing Patrick
|
|
Drexler Clyde
|
|
Bird Larry
|
|
Barkley Charles
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="example" id="example-1089">
|
|
<p><strong>Example #2 <span class="function"><strong>cubrid_bind()</strong></span> BLOB/CLOB example</strong></p>
|
|
<div class="example-contents">
|
|
<div class="phpcode"><pre><span style="color: #000000">
|
|
<span style="color: #0000BB"><?php<br />$con </span><span style="color: #007700">= </span><span style="color: #0000BB">cubrid_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">"localhost"</span><span style="color: #007700">, </span><span style="color: #0000BB">33000</span><span style="color: #007700">, </span><span style="color: #DD0000">"demodb"</span><span style="color: #007700">, </span><span style="color: #DD0000">"dba"</span><span style="color: #007700">, </span><span style="color: #DD0000">""</span><span style="color: #007700">);<br />if (</span><span style="color: #0000BB">$con</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">cubrid_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$con</span><span style="color: #007700">,</span><span style="color: #DD0000">"DROP TABLE if exists php_cubrid_lob_test"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">cubrid_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$con</span><span style="color: #007700">,</span><span style="color: #DD0000">"CREATE TABLE php_cubrid_lob_test (doc_content CLOB)"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$sql </span><span style="color: #007700">= </span><span style="color: #DD0000">"INSERT INTO php_cubrid_lob_test(doc_content) VALUES(?)"</span><span style="color: #007700">; <br /> </span><span style="color: #0000BB">$req </span><span style="color: #007700">= </span><span style="color: #0000BB">cubrid_prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$con</span><span style="color: #007700">, </span><span style="color: #0000BB">$sql</span><span style="color: #007700">); <br /><br /> </span><span style="color: #0000BB">$fp </span><span style="color: #007700">= </span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #DD0000">"book.txt"</span><span style="color: #007700">, </span><span style="color: #DD0000">"rb"</span><span style="color: #007700">);<br /><br /> </span><span style="color: #0000BB">cubrid_bind</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$fp</span><span style="color: #007700">, </span><span style="color: #DD0000">"clob"</span><span style="color: #007700">); <br /> </span><span style="color: #0000BB">cubrid_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">); <br />}<br /></span><span style="color: #0000BB">?></span>
|
|
</span>
|
|
</pre></div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="example" id="example-1090">
|
|
<p><strong>Example #3 <span class="function"><strong>cubrid_bind()</strong></span> BLOB/CLOB example</strong></p>
|
|
<div class="example-contents">
|
|
<div class="phpcode"><pre><span style="color: #000000">
|
|
<span style="color: #0000BB"><?php<br />$con </span><span style="color: #007700">= </span><span style="color: #0000BB">cubrid_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">"localhost"</span><span style="color: #007700">, </span><span style="color: #0000BB">33000</span><span style="color: #007700">, </span><span style="color: #DD0000">"demodb"</span><span style="color: #007700">, </span><span style="color: #DD0000">"dba"</span><span style="color: #007700">, </span><span style="color: #DD0000">""</span><span style="color: #007700">);<br />if (</span><span style="color: #0000BB">$con</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">cubrid_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$con</span><span style="color: #007700">,</span><span style="color: #DD0000">"DROP TABLE if exists php_cubrid_lob_test"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">cubrid_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$con</span><span style="color: #007700">,</span><span style="color: #DD0000">"CREATE TABLE php_cubrid_lob_test (image BLOB)"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$sql </span><span style="color: #007700">= </span><span style="color: #DD0000">"INSERT INTO php_cubrid_lob_test(image) VALUES(?)"</span><span style="color: #007700">; <br /> </span><span style="color: #0000BB">$req </span><span style="color: #007700">= </span><span style="color: #0000BB">cubrid_prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$con</span><span style="color: #007700">, </span><span style="color: #0000BB">$sql</span><span style="color: #007700">); <br /><br /> </span><span style="color: #0000BB">cubrid_bind</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #DD0000">"cubrid_logo.png"</span><span style="color: #007700">, </span><span style="color: #DD0000">"blob"</span><span style="color: #007700">); <br /> </span><span style="color: #0000BB">cubrid_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">); <br />}<br /></span><span style="color: #0000BB">?></span>
|
|
</span>
|
|
</pre></div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="refsect1 seealso" id="refsect1-function.cubrid-bind-seealso">
|
|
<h3 class="title">参见</h3>
|
|
<p class="para">
|
|
<ul class="simplelist">
|
|
<li class="member"><span class="function"><a href="cubrid_execute.html" class="function" rel="rdfs-seeAlso">cubrid_execute()</a> - Execute a prepared SQL statement</span></li>
|
|
<li class="member"><span class="function"><a href="cubrid_prepare.html" class="function" rel="rdfs-seeAlso">cubrid_prepare()</a> - Prepare a SQL statement for execution</span></li>
|
|
</ul>
|
|
</p>
|
|
</div>
|
|
|
|
</div></div></div></body></html> |