Manual do PHP
Anterior |  | Próxima

# dbx_query

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

dbx_query -- Envia uma requisição e armazena todos os resultados (se houver)

## Descrição

objeto dbx_query ( objeto identificador_de_conexão, string comandos_sql [, int flags] )

A função dbx_query() retorna um objeto ou o número `1` em caso de sucesso, e `0` se falhar. O resultado em forma de objeto somente é retornado, caso a requisição no parâmetro `comandos_sql` produzir este resultado (ex: um SELECT query, mesmo se o resultado retornado está vazio).

Exemplo 1. Como tratar os resultados retornados
`<?php $link = dbx_connect(DBX_ODBC, "", "bd", "nome de usuário", "senha") or die("Não foi possível conectar"); $result = dbx_query($link, 'SELECT id, parentid, descricao FROM tabela'); if ( is_object($result) ) { // ... faz alguma coisa aqui, veja detalhes nos exemplos abaixo... // primeiro, imprima os nomes e tipos dos campos // depois, desenhar uma tabela contendo os valores dos campos } else { exit("Requisição falhou"); } dbx_close($link); ?>`

O parâmetro `flags` é 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 `php.ini`.

`DBX_RESULT_INDEX`

  Está sempre ligada, isto é, o objeto retornado contém uma propriedade data, que é um array numérico indexado com 2 dimensões. Por exemplo, na expressão `data[2][3]` `2` é o número da coluna (ou registro) e `3` é o número da coluna (ou campo). A primeira linha e coluna estão no índice 0.

  Se a constante `DBX_RESULT_ASSOC` estiver sendo especificada, o objeto retornado irá conter informações relacionadas à `DBX_RESULT_INFO` também, mesmo que isto não tenha sido especificado.

`DBX_RESULT_INFO`

  Contém informações sobre colunas, assim como o nome e tipos dos campos.

`DBX_RESULT_ASSOC`

  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 data.

  Os resultados associados são atualmente referências aos dados numericamente posicionados, sendo assim, ao modificar `data[0][0]` causa a modificação de `data[0]['nome_para_a_primeira_coluna']` também.

`DBX_RESULT_UNBUFFERED` (somente no CVS)

  Esta flag não irá criar a propriedade data, e a propriedade rows irá iniciar à partir do 0. Use esta flag para grandes datasets, e use a função dbx_fetch_row() para obter os resultados linha à linha.

  A função dbx_fetch_row() irá retornar as linhas que fazem parte das flags desta requisição. Incidentalmente, ela irá também atualizar a propriedade rows toda vez que for chamada.

`DBX_COLNAMES_UNCHANGED` (disponível à partir do PHP 4.3.0)

  Os nomes das colunas retornadas não serão alterados.

`DBX_COLNAMES_UPPERCASE` (disponível à partir do PHP 4.3.0)

  Os nomes das colunas retornadas serão todas alteradas para CAIXA ALTA.

`DBX_COLNAMES_LOWERCASE` (disponível à partir do PHP 4.3.0)

  Os nomes das colunas retornadas serão todas alteradas para caixa baixa.

Note que a constante `DBX_RESULT_INDEX` é sempre usada, contendo o valor atual do parâmetro `flags`. Isto significa que somennte as seguintes combinaçõs surtem efeito:

- `DBX_RESULT_INDEX`

- `DBX_RESULT_INDEX` | `DBX_RESULT_INFO`

- `DBX_RESULT_INDEX` | `DBX_RESULT_INFO` | `DBX_RESULT_ASSOC` - este é o padrão, se o parâmetro `flags` não for especificado.

O `objeto` retornado contém quatro ou cinco propriedades dependendo do parâmetro `flags`:

handle

  É 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).

  `<?php $result = dbx_query ($link, "SELECT id FROM tabela"); mysql_field_len ($result->handle, 0); ?>`

cols e rows

  Estas propriedades conte´m o número das colunas (ou campos) e das linhas (ou registros) respectivamente.

  `<?php $result = dbx_query ($link, 'SELECT id FROM tabela'); echo $result->rows; // número de registros echo $result->cols; // número de campos ?>`

info (opcional)

  É retornado somente se as constantes `DBX_RESULT_INFO` ou `DBX_RESULT_ASSOC` são especificados no parâmetro `flags`. Esta propriedade é um array de 2 dimensões, que contém duas linhas nomeadas (`name` e `type`) para obter informação da coluna.

  Exemplo 2. lista cada nome e tipo de campo
  `<?php $result = dbx_query ($link, 'SELECT id FROM tabela', DBX_RESULT_INDEX | DBX_RESULT_INFO); for ($i = 0; $i < $result->cols; $i++ ) { echo $result->info['name'][$i] . "\n"; echo $result->info['type'][$i] . "\n"; } ?>`

data

  Esta propriedade contém os dados do resultado atual, possivelmente associado com os nomes das colunas depdnendo do parâmetro `flags`. Se a constante `DBX_RESULT_ASSOC` está ligada, é possível usar `$result->data[2]["nome_do_campo"]`.

  Exemplo 3. colocando o conteúdo da propriedade data em uma tabela HTML
  `<?php $resultado = dbx_query ($link, 'SELECT id, parentid, descricao FROM tabela'); echo "<table>\n"; foreach ( $resultado->data as $linha ) { echo "<tr>\n"; foreach ( $linha as $campo ) { echo "<td>$campo</td>"; } echo "</tr>\n"; } echo "</table>\n"; ?>`

  Exemplo 4. Como tratar requisições "UNBUFFERED"
  `$resultado = dbx_query ($link, 'SELECT id, parentid, descricao FROM tabela', DBX_RESULT_UNBUFFERED); echo "<table>\n"; while ( $linha = dbx_fetch_row($resultado) ) { echo "<tr>\n"; foreach ( $linha as $campo ) { echo "<td>$campo</td>"; } echo "</tr>\n"; } echo "</table>\n";`

> Nota: Sempre refira-se à documentação do módulo-específico quando necessário.

> Os nomes das colunas em uma requisição de um banco de dados Oracle são retornados em caixa baixa.

Veja também dbx_escape_string(), dbx_fetch_row() e dbx_connect().

Anterior | Principal | Próxima
dbx_fetch_row | Acima | dbx_sort