<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >dbx_query</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="Manual do PHP" HREF="index.html"><LINK REL="UP" TITLE="funções dbx" HREF="ref.dbx.html"><LINK REL="PREVIOUS" TITLE="dbx_fetch_row" HREF="function.dbx-fetch-row.html"><LINK REL="NEXT" TITLE="dbx_sort" HREF="function.dbx-sort.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="refentry" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Manual do PHP</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.dbx-fetch-row.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.dbx-sort.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.dbx-query" ></A >dbx_query</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN32443" ></A ><P > (PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)</P >dbx_query -- Envia uma requisição e armazena todos os resultados (se houver)</DIV ><DIV CLASS="refsect1" ><A NAME="AEN32446" ></A ><H2 >Descrição</H2 >objeto <B CLASS="methodname" >dbx_query</B > ( objeto identificador_de_conexão, string comandos_sql [, int flags] )<BR ></BR ><P > A função <B CLASS="function" >dbx_query()</B > retorna um objeto ou o número <TT CLASS="literal" >1</TT > em caso de sucesso, e <TT CLASS="literal" >0</TT > se falhar. O resultado em forma de objeto somente é retornado, caso a requisição no parâmetro <CODE CLASS="parameter" >comandos_sql</CODE > produzir este resultado (ex: um SELECT query, mesmo se o resultado retornado está vazio). </P ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN32465" ></A ><P ><B >Exemplo 1. Como tratar os resultados retornados</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br />$link </font><font color="#007700">= </font><font color="#0000BB">dbx_connect</font><font color="#007700">(</font><font color="#0000BB">DBX_ODBC</font><font color="#007700">, </font><font color="#DD0000">""</font><font color="#007700">, </font><font color="#DD0000">"bd"</font><font color="#007700">, </font><font color="#DD0000">"nome de usuário"</font><font color="#007700">, </font><font color="#DD0000">"senha"</font><font color="#007700">)<br /> or die(</font><font color="#DD0000">"Não foi possível conectar"</font><font color="#007700">);<br /><br /></font><font color="#0000BB">$result </font><font color="#007700">= </font><font color="#0000BB">dbx_query</font><font color="#007700">(</font><font color="#0000BB">$link</font><font color="#007700">, </font><font color="#DD0000">'SELECT id, parentid, descricao FROM tabela'</font><font color="#007700">);<br /><br />if ( </font><font color="#0000BB">is_object</font><font color="#007700">(</font><font color="#0000BB">$result</font><font color="#007700">) ) {<br /> </font><font color="#FF8000">// ... faz alguma coisa aqui, veja detalhes nos exemplos abaixo...<br /> // primeiro, imprima os nomes e tipos dos campos<br /> // depois, desenhar uma tabela contendo os valores dos campos<br /></font><font color="#007700">}<br />else {<br /> exit(</font><font color="#DD0000">"Requisição falhou"</font><font color="#007700">);<br />}<br /><br /></font><font color="#0000BB">dbx_close</font><font color="#007700">(</font><font color="#0000BB">$link</font><font color="#007700">);<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ><P > O parâmetro <CODE CLASS="parameter" >flags</CODE > é usado para controlar a quantiodade de informação que é retornada. Estas informações podem ser qualquer combinação de uma das constantes abaixo usando o operador bitwise OR (|). As flags DBX_COLNAMES_* quando usadas, substituem as dbx.colnames_case configuradas no <TT CLASS="filename" >php.ini</TT >. <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><TT CLASS="constant" ><B >DBX_RESULT_INDEX</B ></TT ></DT ><DD ><P > Está <SPAN CLASS="emphasis" ><I CLASS="emphasis" >sempre</I ></SPAN > ligada, isto é, o objeto retornado contém uma propriedade <SPAN CLASS="property" >data</SPAN >, que é um array numérico indexado com 2 dimensões. Por exemplo, na expressão <TT CLASS="literal" >data[2][3]</TT > <TT CLASS="literal" >2</TT > é o número da coluna (ou registro) e <TT CLASS="literal" >3</TT > é o número da coluna (ou campo). A primeira linha e coluna estão no índice 0. </P ><P > Se a constante <TT CLASS="constant" ><B >DBX_RESULT_ASSOC</B ></TT > estiver sendo especificada, o objeto retornado irá conter informações relacionadas à <TT CLASS="constant" ><B >DBX_RESULT_INFO</B ></TT > também, mesmo que isto não tenha sido especificado. </P ></DD ><DT ><TT CLASS="constant" ><B >DBX_RESULT_INFO</B ></TT ></DT ><DD ><P > Contém informações sobre colunas, assim como o nome e tipos dos campos. </P ></DD ><DT ><TT CLASS="constant" ><B >DBX_RESULT_ASSOC</B ></TT ></DT ><DD ><P > Esta constante torna possível o acesso aos valores dos campos e nomes das colunas respectivamente, ela é usada como chave para os objetos retornados na propriedade <SPAN CLASS="property" >data</SPAN >. </P ><P > Os resultados associados são atualmente referências aos dados numericamente posicionados, sendo assim, ao modificar <TT CLASS="literal" >data[0][0]</TT > causa a modificação de <TT CLASS="literal" >data[0]['nome_para_a_primeira_coluna']</TT > também. </P ></DD ><DT ><TT CLASS="constant" ><B >DBX_RESULT_UNBUFFERED</B ></TT > (somente no CVS)</DT ><DD ><P > Esta flag não irá criar a propriedade <SPAN CLASS="property" >data</SPAN >, e a propriedade <SPAN CLASS="property" >rows</SPAN > irá iniciar à partir do 0. Use esta flag para grandes datasets, e use a função <A HREF="function.dbx-fetch-row.html" ><B CLASS="function" >dbx_fetch_row()</B ></A > para obter os resultados linha à linha. </P ><P > A função <A HREF="function.dbx-fetch-row.html" ><B CLASS="function" >dbx_fetch_row()</B ></A > irá retornar as linhas que fazem parte das flags desta requisição. Incidentalmente, ela irá também atualizar a propriedade <SPAN CLASS="property" >rows</SPAN > toda vez que for chamada. </P ></DD ><DT ><TT CLASS="constant" ><B >DBX_COLNAMES_UNCHANGED</B ></TT > (disponível à partir do PHP 4.3.0)</DT ><DD ><P > Os nomes das colunas retornadas não serão alterados. </P ></DD ><DT ><TT CLASS="constant" ><B >DBX_COLNAMES_UPPERCASE</B ></TT > (disponível à partir do PHP 4.3.0)</DT ><DD ><P > Os nomes das colunas retornadas serão todas alteradas para CAIXA ALTA. </P ></DD ><DT ><TT CLASS="constant" ><B >DBX_COLNAMES_LOWERCASE</B ></TT > (disponível à partir do PHP 4.3.0)</DT ><DD ><P > Os nomes das colunas retornadas serão todas alteradas para caixa baixa. </P ></DD ></DL ></DIV > Note que a constante <TT CLASS="constant" ><B >DBX_RESULT_INDEX</B ></TT > é sempre usada, contendo o valor atual do parâmetro <CODE CLASS="parameter" >flags</CODE >. Isto significa que somennte as seguintes combinaçõs surtem efeito: <P ></P ><UL ><LI ><P > <TT CLASS="constant" ><B >DBX_RESULT_INDEX</B ></TT > </P ></LI ><LI ><P > <TT CLASS="constant" ><B >DBX_RESULT_INDEX</B ></TT > | <TT CLASS="constant" ><B >DBX_RESULT_INFO</B ></TT > </P ></LI ><LI ><P > <TT CLASS="constant" ><B >DBX_RESULT_INDEX</B ></TT > | <TT CLASS="constant" ><B >DBX_RESULT_INFO</B ></TT > | <TT CLASS="constant" ><B >DBX_RESULT_ASSOC</B ></TT > - este é o padrão, se o parâmetro <CODE CLASS="parameter" >flags</CODE > não for especificado. </P ></LI ></UL > </P ><P > O <CODE CLASS="varname" >objeto</CODE > retornado contém quatro ou cinco propriedades dependendo do parâmetro <CODE CLASS="parameter" >flags</CODE >: <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><SPAN CLASS="property" >handle</SPAN ></DT ><DD ><P > É um evento válido para a conexão com o banco de dados, e como tal pode ser usado nas funções do módulo específico (se necessário). <DIV CLASS="informalexample" ><P ></P ><A NAME="AEN32550" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br />$result </font><font color="#007700">= </font><font color="#0000BB">dbx_query </font><font color="#007700">(</font><font color="#0000BB">$link</font><font color="#007700">, </font><font color="#DD0000">"SELECT id FROM tabela"</font><font color="#007700">);<br /></font><font color="#0000BB">mysql_field_len </font><font color="#007700">(</font><font color="#0000BB">$result</font><font color="#007700">-></font><font color="#0000BB">handle</font><font color="#007700">, </font><font color="#0000BB">0</font><font color="#007700">);<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ><P ></P ></DIV > </P ></DD ><DT ><SPAN CLASS="property" >cols</SPAN > e <SPAN CLASS="property" >rows</SPAN ></DT ><DD ><P > Estas propriedades conte´m o número das colunas (ou campos) e das linhas (ou registros) respectivamente. <DIV CLASS="informalexample" ><P ></P ><A NAME="AEN32558" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br />$result </font><font color="#007700">= </font><font color="#0000BB">dbx_query </font><font color="#007700">(</font><font color="#0000BB">$link</font><font color="#007700">, </font><font color="#DD0000">'SELECT id FROM tabela'</font><font color="#007700">);<br />echo </font><font color="#0000BB">$result</font><font color="#007700">-></font><font color="#0000BB">rows</font><font color="#007700">; </font><font color="#FF8000">// número de registros<br /></font><font color="#007700">echo </font><font color="#0000BB">$result</font><font color="#007700">-></font><font color="#0000BB">cols</font><font color="#007700">; </font><font color="#FF8000">// número de campos<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ><P ></P ></DIV > </P ></DD ><DT ><SPAN CLASS="property" >info</SPAN > (opcional)</DT ><DD ><P > É retornado somente se as constantes <TT CLASS="constant" ><B >DBX_RESULT_INFO</B ></TT > ou <TT CLASS="constant" ><B >DBX_RESULT_ASSOC</B ></TT > são especificados no parâmetro <CODE CLASS="parameter" >flags</CODE >. Esta propriedade é um array de 2 dimensões, que contém duas linhas nomeadas (<TT CLASS="literal" >name</TT > e <TT CLASS="literal" >type</TT >) para obter informação da coluna. </P ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN32570" ></A ><P ><B >Exemplo 2. lista cada nome e tipo de campo</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br />$result </font><font color="#007700">= </font><font color="#0000BB">dbx_query </font><font color="#007700">(</font><font color="#0000BB">$link</font><font color="#007700">, </font><font color="#DD0000">'SELECT id FROM tabela'</font><font color="#007700">,<br /> </font><font color="#0000BB">DBX_RESULT_INDEX </font><font color="#007700">| </font><font color="#0000BB">DBX_RESULT_INFO</font><font color="#007700">);<br /><br />for (</font><font color="#0000BB">$i </font><font color="#007700">= </font><font color="#0000BB">0</font><font color="#007700">; </font><font color="#0000BB">$i </font><font color="#007700">< </font><font color="#0000BB">$result</font><font color="#007700">-></font><font color="#0000BB">cols</font><font color="#007700">; </font><font color="#0000BB">$i</font><font color="#007700">++ ) {<br /> echo </font><font color="#0000BB">$result</font><font color="#007700">-></font><font color="#0000BB">info</font><font color="#007700">[</font><font color="#DD0000">'name'</font><font color="#007700">][</font><font color="#0000BB">$i</font><font color="#007700">] . </font><font color="#DD0000">"\n"</font><font color="#007700">;<br /> echo </font><font color="#0000BB">$result</font><font color="#007700">-></font><font color="#0000BB">info</font><font color="#007700">[</font><font color="#DD0000">'type'</font><font color="#007700">][</font><font color="#0000BB">$i</font><font color="#007700">] . </font><font color="#DD0000">"\n"</font><font color="#007700">; <br />}<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></DD ><DT ><SPAN CLASS="property" >data</SPAN ></DT ><DD ><P > Esta propriedade contém os dados do resultado atual, possivelmente associado com os nomes das colunas depdnendo do parâmetro <CODE CLASS="parameter" >flags</CODE >. Se a constante <TT CLASS="constant" ><B >DBX_RESULT_ASSOC</B ></TT > está ligada, é possível usar <TT CLASS="literal" >$result->data[2]["nome_do_campo"]</TT >. </P ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN32581" ></A ><P ><B >Exemplo 3. colocando o conteúdo da propriedade data em uma tabela HTML</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br />$resultado </font><font color="#007700">= </font><font color="#0000BB">dbx_query </font><font color="#007700">(</font><font color="#0000BB">$link</font><font color="#007700">, </font><font color="#DD0000">'SELECT id, parentid, descricao FROM tabela'</font><font color="#007700">);<br /><br />echo </font><font color="#DD0000">"<table>\n"</font><font color="#007700">;<br />foreach ( </font><font color="#0000BB">$resultado</font><font color="#007700">-></font><font color="#0000BB">data </font><font color="#007700">as </font><font color="#0000BB">$linha </font><font color="#007700">) {<br /> echo </font><font color="#DD0000">"<tr>\n"</font><font color="#007700">;<br /> foreach ( </font><font color="#0000BB">$linha </font><font color="#007700">as </font><font color="#0000BB">$campo </font><font color="#007700">) {<br /> echo </font><font color="#DD0000">"<td>$campo</td>"</font><font color="#007700">;<br /> }<br /> echo </font><font color="#DD0000">"</tr>\n"</font><font color="#007700">;<br />}<br />echo </font><font color="#DD0000">"</table>\n"</font><font color="#007700">;<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN32584" ></A ><P ><B >Exemplo 4. Como tratar requisições "UNBUFFERED"</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> $resultado = dbx_query ($link, 'SELECT id, parentid, descricao FROM tabela', DBX_RESULT_UNBUFFERED);<br /><br />echo "<table>\n";<br />while ( $linha = dbx_fetch_row($resultado) ) {<br /> echo "<tr>\n";<br /> foreach ( $linha as $campo ) {<br /> echo "<td>$campo</td>";<br /> }<br /> echo "</tr>\n";<br />}<br />echo "</table>\n";</font> </code></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></DD ></DL ></DIV > </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > Sempre refira-se à documentação do módulo-específico quando necessário. </P ><P > Os nomes das colunas em uma requisição de um banco de dados Oracle são retornados em caixa baixa. </P ></BLOCKQUOTE ></DIV ><P > Veja também <A HREF="function.dbx-escape-string.html" ><B CLASS="function" >dbx_escape_string()</B ></A >, <A HREF="function.dbx-fetch-row.html" ><B CLASS="function" >dbx_fetch_row()</B ></A > e <A HREF="function.dbx-connect.html" ><B CLASS="function" >dbx_connect()</B ></A >. </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.dbx-fetch-row.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Principal</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.dbx-sort.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >dbx_fetch_row</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.dbx.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >dbx_sort</TD ></TR ></TABLE ></DIV ></BODY ></HTML >