Utilizando a PEAR::DB
Executar uma query com a Pear::DB também é bastante simples. Basta passar a string para o método query e testar se houve algum erro:
Se a consulta for um SELECT, você precisará obter os dados resultantes. Há dois métodos que podem fazer isso para você: fetchRow() e fetchInto().
fetchInto()
O método fetchInto() recebe como argumento um array, onde será armazenada a linha do resultado (um campo em cada índice do array).
OBS: Nos próximos exemplos, suponhamos que a tabela usuarios da consulta acima possua os campos nome e fone.
fetchRow()
O método fetchRow() retorna uma linha do resultado da consulta. Se você não especificar nenhum argumento, essa linha será retornada no formato de um array ordenado.
Existem outras formas de buscar o resultado com o fetchRow(), onde deve-se passar o modo como argumento. Existem 3 modos:
DB_FETCHMODE_ORDERED: é o padrão. Retorna os resultados em um array ordenado, como vimos no exemplo acima.
DB_FETCHMODE_ASSOC: retorna os resultados em um array associativo, com os nomes dos campos como chaves. Exemplo:
DB_FETCHMODE_OBJECT: retorna os resultados na forma de um objeto, onde os campos são como propriedades. Exemplo:
numRows e numCols
numRows(): exibe o número de linhas resultantes. Exemplo:
numCols(): exibe o número de colunas resultantes. Exemplo:
Liberando o espaço de memória
Ao terminar a manipulação do resultado, é recomendável liberar o espaço ocupado em memória com o método free:
Para encerrar a conexão, basta o seguinte comando:
A Pear::DB oferece muitos recursos. Neste artigo abordamos apenas o básico do básico para você começar a "brincar" e se familiarizar com essa ferramenta tão poderosa e que pode facilitar bastante a vida de você, programador.
Para conhecer todos os seus recursos, acesse a documentação em http://pear.php.net .
<?php // string da query $sql= "SELECT * FROM usuarios"; // executando a consulta $res= $conn->query($sql); // testando se houve algum erro if (DB::isError($res)) { die($res->getMessage()); } ?>
Se a consulta for um SELECT, você precisará obter os dados resultantes. Há dois métodos que podem fazer isso para você: fetchRow() e fetchInto().
fetchInto()
O método fetchInto() recebe como argumento um array, onde será armazenada a linha do resultado (um campo em cada índice do array).
OBS: Nos próximos exemplos, suponhamos que a tabela usuarios da consulta acima possua os campos nome e fone.
while ($lin = $res->fetchInto($lin)) { echo $lin[0]; // imprime campo nome echo $lin[1]; // imprime campo fone }
fetchRow()
O método fetchRow() retorna uma linha do resultado da consulta. Se você não especificar nenhum argumento, essa linha será retornada no formato de um array ordenado.
while ($lin = $res->fetchRow()) { echo $lin[0]; // imprime campo nome echo $lin[1]; // imprime campo fone }
Existem outras formas de buscar o resultado com o fetchRow(), onde deve-se passar o modo como argumento. Existem 3 modos:
DB_FETCHMODE_ORDERED: é o padrão. Retorna os resultados em um array ordenado, como vimos no exemplo acima.
DB_FETCHMODE_ASSOC: retorna os resultados em um array associativo, com os nomes dos campos como chaves. Exemplo:
while ($lin = $res->fetchRow(DB_FETCHMODE_ASSOC)) { echo $lin['nome']; // imprime campo nome echo $lin['fone']; // imprime campo fone }
DB_FETCHMODE_OBJECT: retorna os resultados na forma de um objeto, onde os campos são como propriedades. Exemplo:
while ($lin = $res->fetchRow(DB_FETCHMODE_OBJECT)) { echo $lin->nome; // imprime campo nome echo $lin->fone; // imprime campo fone }
numRows e numCols
numRows(): exibe o número de linhas resultantes. Exemplo:
echo $res->numRows();
numCols(): exibe o número de colunas resultantes. Exemplo:
echo $res->numCols();
Liberando o espaço de memória
Ao terminar a manipulação do resultado, é recomendável liberar o espaço ocupado em memória com o método free:
$res->free;
Para encerrar a conexão, basta o seguinte comando:
$conn->disconnect();
A Pear::DB oferece muitos recursos. Neste artigo abordamos apenas o básico do básico para você começar a "brincar" e se familiarizar com essa ferramenta tão poderosa e que pode facilitar bastante a vida de você, programador.
Para conhecer todos os seus recursos, acesse a documentação em http://pear.php.net .
Páginas:
1
2
27/07/2004 10:00am
(~20 anos atrás)
o benchmark eu não tenho, mas já li sobre a PEAR::DB ser bem lenta em relação a ADODB... por isso existem as alternativas PEAR::MDB e PEAR::MDB2...
20/07/2004 9:32am
(~20 anos atrás)
Procurei informações sobre conexao com o OpenBASE no site pear.php.net e nao encontrei nada.
Será que essa é a unica base de dados que ele não consegue se conectar, da pra dar um help ai. To precisando muito.
Valeu
Será que essa é a unica base de dados que ele não consegue se conectar, da pra dar um help ai. To precisando muito.
Valeu
16/07/2004 9:40am
(~20 anos atrás)
a pear é uma ótima solução
pena que o pessoal de lá não tem muitos parâmetros de seleção de pacotes.
acho que poderia ser adicionado coisas com qualidade mais regularmente
pena que o pessoal de lá não tem muitos parâmetros de seleção de pacotes.
acho que poderia ser adicionado coisas com qualidade mais regularmente
16/07/2004 6:10am
(~20 anos atrás)
bom venho usando as classes do pear a ums 2 meses é....
Muito bom, so pelo fato de não ter que reinventar a roda cada vez que voce quer fazer uma coisa quebra alto galho
Muito bom, so pelo fato de não ter que reinventar a roda cada vez que voce quer fazer uma coisa quebra alto galho
15/07/2004 1:00pm
(~20 anos atrás)
mas já vem com o PHP isso...
só há também a opção na hora de compilar
--without-pear ;)
só há também a opção na hora de compilar
--without-pear ;)
14/07/2004 12:20pm
(~20 anos atrás)
Para instalar em qualquer distribuição use esse comando.
lynx -source http://go-pear.org/ | php
Para listar os pacotes disponiveis use isso :
pear remote-list
E para instala-los ou atualiza-los use isso :
pear install <nome do pacote>
lynx -source http://go-pear.org/ | php
Para listar os pacotes disponiveis use isso :
pear remote-list
E para instala-los ou atualiza-los use isso :
pear install <nome do pacote>
13/07/2004 4:13pm
(~20 anos atrás)
E quanto a performance? alguém já fez algum teste com grande massa de dados?
Muito bom o seu artigo Rogério!