Selecionando de um banco de dados
Como qualquer biblioteca bem desenvolvida, como também nas
próprias funções do PHP, existem vários caminhos para chegar
aos resultados, dependendo do que você planeja, este é um
caminho:
<?
$sql = "SELECT nome, idade FROM funcionarios";
$rs = &$db -> Execute($sql);
if (!$rs) {
print $db ->ErrorMsg(); //Mostra a mensagem de erro se nehum resultado for retornado
} //endif
else {
while (!rs -> EOF) {
print $rs -> fields[0].' '.$rs -> fields[1].'<BR>';
//fields[0] é o nome, fields[1] é a idade
$rs -> MoveNext(); //move para a proxima linha
} //endwhile
} //endelse
?>
Neste exemplo, "$rs -> fields" é um array contendo os valores
retornados. O índice do Array é numérico por padrão, mas se você
quiser pode criar um array associativo para especificar por nome,
bastando especificar o modo antes da query, por exemplo:
<?
$sql = "SELECT nome, idade FROM funcionarios";
$rs = &$db -> Execute($sql);
if (!$rs) {
print $db ->ErrorMsg(); //Mostra a mensagem de erro se nehum resultado for retornado
} //endif
else {
while (!rs -> EOF) {
print $rs -> fields['nome'].' '.$rs -> fields['idade'].'<BR>';
//fields[0] é o nome, fields[1] é a idade
$rs -> MoveNext(); //move para a proxima linha
} //endwhile
} //endelse
?>
Uma alternativa para navegar entre os resultados é retornar cada
linha como um objeto. ADODB tem uma função chamada
FetchNextObject(), ela automaticamente se move para a próxima linha.
<?
$sql = "SELECT nome, idade FROM funcionarios";
$db -> SetFetchMode(ADODB_FETCH_ASSOC); //retornar array associativo
$rs = &$db -> Execute($sql);
if (!$rs) {
print $db ->ErrorMsg(); //Mostra a mensagem de erro se nehum resultado for retornado
}//endif
//loop através dos resultados
while ($row = $rs -> FetchNextObject()) {
//o nome do campo precisa ser em maiúsculas
print $row -> NOME.' '.IDADE.'<BR>';
}//endwhile
?>
Inserindo e atualizando registros
A inserção básica é rápida e fácil, assim como quando se
está selecionando:
$sql = "INSERT INTO funcionarios (nome,idade) VALUES ('Pedro César','25')";
if (!($db -> Execute($sql))) {
print 'Erro inserindo:'.$db -> ErrorMsg().'<BR>';
}
A vantagem real de usar a biblioteca nesse caso é permitir que
você possa inserir os dados em bancos diferentes com a mesma
sintaxe, o que normalmente seria impossível, vejam duas situações
comuns de ocorrer:
1°) Todas as cotas precisam ter uma saída no caso de erro de
sintaxe, mas alguns bancos inserem uma cota simples, outros duas
cotas simples, assim ao invés de usar uma função do PHP como
addslashes(), com muitos modos de ser usada, você pode
usar a qstr() da ADODB para pegar uma string e retorná-la
corretamente formatada para usar no banco de sua preferência.
2°) Em relação as datas, muitos bancos aceitam muitos e
incompatíveis formatos. ADODB tem uma função chamada DBDate(),
que aceita datas em vários Unix Time Stamps ou o
formato ISO(Y-M-d) e converte para qualquer formato, de acordo
com seu banco. O exemplo seguinte mostra essas duas funções em ação:
$employee_surname = $db->qstr("d'Angelo");
$arrival_tim = $db-> DBDate(time());
$sql = "INSERT INTO employee_arrival(arrival_time,surname) VALUES ($arrival_time,$employee_surname)";
if (!($db->execute($sql))) {
print "Erro inserindo:".$db->ErrorMsg()."<br>";
}
Você atualiza exatamente pelo mesmo caminho, por exemplo:
$sql = "UPDATE employees SET idade='44' WHERE id='121'";
if (!($db->execute($sql))) {
print "Erro Atualizando:".$db->ErrorMsg()."<br>";
}
Sugiro para quem quer se aprofundar no assunto ir até
http://php.weblogs.com, pois lá
tem muita informação valiosa.