Como começar a usar a classe”DB” de forma simples
Usar as funções, que o php disponibiliza, diretamente no seu código torna seu projeto restrito à aquele banco de dados.
Redução do seu código.
Facilidade para tratar erro.
Extensões de SGBDs suportadas
dbase msql oci8 sybase
fbsql mssql odbc ldap
ibase mysql pgsql ldap2
ifx mysqli sqlite ldap3
Usando
Abaixo é exibido de uma forma simples a interação com o banco de dados quando usado o PEAR::DB.
Primeiramente, será exibido um exemplo e depois será explicando as etapas.
<?
require_once "DB.php";
$dsn = "mysql://usuario:senha@host/database";
$db = DB::connect($dsn);
if (DB::isError($db)) {
die($db->getMessage());
}
$db->setFetchMode(DB_FETCHMODE_ASSOC);
$linha = $db->getRow(
"SELECT id, nome, email FROM usuario WHERE nome = ?",
array('pedro')
);
if (DB::isError($linha)) {
die( $linha->toString() );
}
$rs = $db->query("SELECT id, nome, email FROM usuario");
if (DB::isError($rs)) {
die( $rs->toString() );
}
print "Numero de linhas selecionadas: " .$rs->numRows() . "\n";
while ($row =& $rs->fetchRow()) {
print "{$row['id']} - {$row['nome']} \n";
}
$rs->free();
$sth = $db->prepare("INSERT INTO usuario (nome, email) VALUES (?, ?)");
$data = array('Priscilla', 'seuemail@dominio.com.br');
$rs = $db->execute($sth, $data);
if (DB::isError($rs)) {
die($rs->toString());
}
$db->disconnect();
?>
Vamos comentar esse código…
Linha 3: Inclue a biblioteca.
Linha 5: DSN. Define as especificações da conexão a ser estabelecida.
Linhas 7 a 10: Conecta ao banco de dados e verifica se houve algum erro. A Classe DB SEMPRE retorna o objeto DB_Error quando acontece algum erro.
Linha 12: Diz ao PEAR::DB para sempre retornar um array associativo quando for retornar um resultado de um select. Existem também as constantes DB_FETCHMODE_ORDERED e DB_FETCHMODE_OBJECT.
Linhas 14 a 20: Seleciona SOMENTE uma linha e faz o tratamento de erro. Repare no SQL tem um ‘?’… então, ele subistitue o ? por ‘pedro’ já fazendo o quote. Caso tenha mais de um ‘?’, ele vai subistituindo por cada item do array $data na ordem.
Linhas 22 a 32: Executa a query e retorna DB_result ou DB_Error caso ocorra algum erro. Imprime a quantidade de registros selecionados com $rs->numRows() e faz uma varredura no resultado da query pegando cada registro e imprimindo na tela.
Linhas 34 a 39: Prepara a query usando o mesmo esquema com as ‘?’, define os dados a serem inserido, executa e trata o erro caso ocorra. Você pode usar para updates e deletes também.
Conclusão
Foi explicado sobre algumas das principais funcionalidades do PEAR::DB… leia a documentação para fazer uma pesquisa mais detalhada do poder desta biblioteca.
http://pear.php.net/package/DB
http://pear.php.net/manual/en/package.database.db.php