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
        (~21 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
        (~21 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
        (~21 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
        (~21 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
        (~21 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
        (~21 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
        (~21 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!