📄 function.dbx-query.html
字号:
<ul class="itemizedlist"> <li class="listitem"> <span class="simpara"> <b><tt>DBX_RESULT_INDEX</tt></b> </span> </li> <li class="listitem"> <span class="simpara"> <b><tt>DBX_RESULT_INDEX</tt></b> | <b><tt>DBX_RESULT_INFO</tt></b> </span> </li> <li class="listitem"> <span class="simpara"> <b><tt>DBX_RESULT_INDEX</tt></b> | <b><tt>DBX_RESULT_INFO</tt></b> | <b><tt>DBX_RESULT_ASSOC</tt></b> - this is the default, if <i><tt class="parameter">flags</tt></i> is not specified. </span> </li> </ul> </p> </dd> </dt> </dl> </p> </div> <div class="refsect1 returnvalues"> <h3 class="title">Return Values</h3> <p class="para"> <b>dbx_query()</b> returns an object or <i>1</i> on success, and <i>0</i> on failure. The result object is returned only if the query given in <i><tt class="parameter">sql_statement</tt></i> produces a result set (i.e. a SELECT query, even if the result set is empty). </p> <p class="para"> The returned <var class="varname">object</var> has four or five properties depending on <i><tt class="parameter">flags</tt></i>: <dl> <dt> <span class="term"> <span class="property">handle</span> </span> <dd> <p class="para"> It is a valid handle for the connected database, and as such it can be used in module specific functions (if required). <div class="informalexample"> <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB"><?php<br />$result </span><span style="color: #007700">= </span><span style="color: #0000BB">dbx_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$link</span><span style="color: #007700">, </span><span style="color: #DD0000">"SELECT id FROM table"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">mysql_field_len</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">handle</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span></span></code></div> </div> </div> </p> </dd> </dt> <dt> <span class="term"> <span class="property">cols</span> and <span class="property">rows</span> </span> <dd> <p class="para"> These contain the number of columns (or fields) and rows (or records) respectively. <div class="informalexample"> <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB"><?php<br />$result </span><span style="color: #007700">= </span><span style="color: #0000BB">dbx_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$link</span><span style="color: #007700">, </span><span style="color: #DD0000">'SELECT id FROM table'</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">rows</span><span style="color: #007700">; </span><span style="color: #FF8000">// number of records<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">cols</span><span style="color: #007700">; </span><span style="color: #FF8000">// number of fields <br /></span><span style="color: #0000BB">?></span></span></code></div> </div> </div> </p> </dd> </dt> <dt> <span class="term"> <span class="property">info</span> (optional) </span> <dd> <span class="simpara"> It is returned only if either <b><tt>DBX_RESULT_INFO</tt></b> or <b><tt>DBX_RESULT_ASSOC</tt></b> is specified in the <i><tt class="parameter">flags</tt></i> parameter. It is a 2 dimensional array, that has two named rows (<i>name</i> and <i>type</i>) to retrieve column information. </span> <div class="example"> <p><b>Example #1 lists each field's name and type</b></p> <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB"><?php<br />$result </span><span style="color: #007700">= </span><span style="color: #0000BB">dbx_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$link</span><span style="color: #007700">, </span><span style="color: #DD0000">'SELECT id FROM table'</span><span style="color: #007700">,<br /> </span><span style="color: #0000BB">DBX_RESULT_INDEX </span><span style="color: #007700">| </span><span style="color: #0000BB">DBX_RESULT_INFO</span><span style="color: #007700">);<br /><br />for (</span><span style="color: #0000BB">$i </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">; </span><span style="color: #0000BB">$i </span><span style="color: #007700">< </span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">cols</span><span style="color: #007700">; </span><span style="color: #0000BB">$i</span><span style="color: #007700">++ ) {<br /> echo </span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">info</span><span style="color: #007700">[</span><span style="color: #DD0000">'name'</span><span style="color: #007700">][</span><span style="color: #0000BB">$i</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /> echo </span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">info</span><span style="color: #007700">[</span><span style="color: #DD0000">'type'</span><span style="color: #007700">][</span><span style="color: #0000BB">$i</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">; <br />}<br /></span><span style="color: #0000BB">?></span></span></code></div> </div> </div> </dd> </dt> <dt> <span class="term"> <span class="property">data</span> </span> <dd> <span class="simpara"> This property contains the actual resulting data, possibly associated with column names as well depending on <i><tt class="parameter">flags</tt></i>. If <b><tt>DBX_RESULT_ASSOC</tt></b> is set, it is possible to use <i>$result->data[2]["field_name"]</i>. </span> <div class="example"> <p><b>Example #2 outputs the content of data property into HTML table</b></p> <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB"><?php<br />$result </span><span style="color: #007700">= </span><span style="color: #0000BB">dbx_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$link</span><span style="color: #007700">, </span><span style="color: #DD0000">'SELECT id, parentid, description FROM table'</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #DD0000">"<table>\n"</span><span style="color: #007700">;<br />foreach (</span><span style="color: #0000BB">$result</span><span style="color: #007700">-></span><span style="color: #0000BB">data </span><span style="color: #007700">as </span><span style="color: #0000BB">$row</span><span style="color: #007700">) {<br /> echo </span><span style="color: #DD0000">"<tr>\n"</span><span style="color: #007700">;<br /> foreach (</span><span style="color: #0000BB">$row </span><span style="color: #007700">as </span><span style="color: #0000BB">$field</span><span style="color: #007700">) {<br /> echo </span><span style="color: #DD0000">"<td>$field</td>"</span><span style="color: #007700">;<br /> }<br /> echo </span><span style="color: #DD0000">"</tr>\n"</span><span style="color: #007700">;<br />}<br />echo </span><span style="color: #DD0000">"</table>\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?></span></span></code></div> </div> </div> <div class="example"> <p><b>Example #3 How to handle UNBUFFERED queries</b></p> <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB"><?php<br /><br />$result </span><span style="color: #007700">= </span><span style="color: #0000BB">dbx_query </span><span style="color: #007700">(</span><span style="color: #0000BB">$link</span><span style="color: #007700">, </span><span style="color: #DD0000">'SELECT id, parentid, description FROM table'</span><span style="color: #007700">, </span><span style="color: #0000BB">DBX_RESULT_UNBUFFERED</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #DD0000">"<table>\n"</span><span style="color: #007700">;<br />while (</span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">dbx_fetch_row</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">)) {<br /> echo </span><span style="color: #DD0000">"<tr>\n"</span><span style="color: #007700">;<br /> foreach (</span><span style="color: #0000BB">$row </span><span style="color: #007700">as </span><span style="color: #0000BB">$field</span><span style="color: #007700">) {<br /> echo </span><span style="color: #DD0000">"<td>$field</td>"</span><span style="color: #007700">;<br /> }<br /> echo </span><span style="color: #DD0000">"</tr>\n"</span><span style="color: #007700">;<br />}<br />echo </span><span style="color: #DD0000">"</table>\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">?></span></span></code></div> </div> </div> </dd> </dt> </dl> </p> </div> <div class="refsect1 examples"> <h3 class="title">Examples</h3> <p class="para"> <div class="example"> <p><b>Example #4 How to handle the returned value</b></p> <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB"><?php<br />$link </span><span style="color: #007700">= </span><span style="color: #0000BB">dbx_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">DBX_ODBC</span><span style="color: #007700">, </span><span style="color: #DD0000">""</span><span style="color: #007700">, </span><span style="color: #DD0000">"db"</span><span style="color: #007700">, </span><span style="color: #DD0000">"username"</span><span style="color: #007700">, </span><span style="color: #DD0000">"password"</span><span style="color: #007700">)<br /> or die(</span><span style="color: #DD0000">"Could not connect"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">dbx_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$link</span><span style="color: #007700">, </span><span style="color: #DD0000">'SELECT id, parentid, description FROM table'</span><span style="color: #007700">);<br /><br />if (</span><span style="color: #0000BB">is_object</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">) ) {<br /> </span><span style="color: #FF8000">// ... do some stuff here, see detailed examples below ...<br /> // first, print out field names and types <br /> // then, draw a table filled with the returned field values<br /></span><span style="color: #007700">} else {<br /> exit(</span><span style="color: #DD0000">"Query failed"</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">dbx_close</span><span style="color: #007700">(</span><span style="color: #0000BB">$link</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span></span></code></div> </div> </div> </p> </div> <div class="refsect1 notes"> <h3 class="title">Notes</h3> <blockquote><p><b class="note">Note</b>: Always refer to the module-specific documentation as well. <br /> Column names for queries on an Oracle database are returned in lowercase. <br /> </p></blockquote> </div> <div class="refsect1 seealso"> <h3 class="title">See Also</h3> <p class="para"> <ul class="simplelist"> <li class="member"><a href="function.dbx-escape-string.html" class="function" rel="rdfs-seeAlso">dbx_escape_string()</a></li> <li class="member"><a href="function.dbx-fetch-row.html" class="function" rel="rdfs-seeAlso">dbx_fetch_row()</a></li> <li class="member"><a href="function.dbx-connect.html" class="function" rel="rdfs-seeAlso">dbx_connect()</a></li> </ul> </p> </div></div><hr /><div style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="function.dbx-fetch-row.html">dbx_fetch_row</a></div> <div class="next" style="text-align: right; float: right;"><a href="function.dbx-sort.html">dbx_sort</a></div> <div class="up"><a href="ref.dbx.html">dbx Functions</a></div> <div class="home"><a href="index.html">PHP Manual</a></div></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -