PDO (PHP Data Object) é um conjunto de classes nativas do PHP utilizadas para acessar banco de dados.
Com PDO você mantém a mesma sintaxe de comandos em PHP para trabalhar com qualquer banco de dados, alterando somente o driver de conexão e a connection string. Enfim, facilita e muito a vida de todo desenvolvedor, sem falar na facilidade que a programação orientada a objetivos nos oferece por si mesma. Portando, esqueça mysqlcli e coisas do tipo, utilize PDO :)
Uma instalção padraão do PHP já contem alguns drivers PDO instalados para acessar os DBs mais populares para desenvolvimento web (MySQL, PostGre, etc). Agora, se você deseja desenvolver algo utilizando Firebird fica um pouco mais complicado. Vejamos aqui um passo a passo para configurar seu Apache e PHP para instalar os drives PDO para Firebird.
1. Habilite as seguintes linhas no seu php.ini
extension=php_pdo.dll
extension=php.pdo_firebird.dll
extension=php.interbase.dll
2. Verifique se estas dll's estão na pasta "EXT" do PHP. Se não estiverem lá as copie.
3. Agora você precisa copiar as seguintes dll de conexão com Firebird (aquelas mesmo que você utiliza no Delphi) para a pasta "BIN" na sua instalação do Apache:
fbclient.dll
gds32.dll
msvcr71.dll
Pode ser que não precise de todas - a msrcr71.dll, por exemplo, parece ser utilizada somente para versões do Firebird > 2.5. Mas, para evitar erros, procuro sempre adicionar estas três libs.
4. Reinicie o Apache.
Muito bem, basicamente é isso. Se mesmo assim não funcionar copie as DLL's do terceiro passo para a pasta C:\Windows\System32 no seu sistema.
Vamos ver se tudo isso funcionou?
Neste exemplo vamos imaginar que temos a tabela CLIENTES em nosso banco de dados chamado MEUBANCO.fdb e queremos listar o nome de todos os clientes cadastrados. Vamos la:
//conectamos ao banco de dados $con = new PDO('firebird:dbname=127.0.0.1:C:\MEUBANCO.FDB', 'SYSDBA', 'masterkey'); //montamos e rodamos a query $query = $con->query("select nome from clientes"); $query->execute(); //retornamos todos os registros (fetchAll) em forma de uma lista de Objetos (FECH_OBJ) $registros = $query->fetchAll(PDO::FETCH_OBJ); //percorremos a lista retornando item por item e imprimindo a propriedade que desejamos (neste caso: NOME) foreach($registros as $r) { echo $r->NOME . "<br>"; }
Se tudo deu certo o nome de todos os clientes cadastros será listado na tela.
E se não deu certo? Bom, dai vai dar erro de conexão ou não listar nada - neste caso revise os passos anteriores e tente novamente. :)
Para saber mais, acesse o manual on-line do PDO em http://php.net/manual/pt_BR/book.pdo.php
Att,
Ivan S. Vargas