Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Introdução Ao ADOdb

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial Introdução Ao ADOdb

    ADOdb é uma biblioteca de abstração de banco de dados para PHP e Python baseado no mesmo conceito como da Microsoft ActiveX Data Objects . Ele permite aos desenvolvedores escrever aplicações de uma forma bastante consistente, independentemente do sistema de banco de dados subjacente e armazenar as informações. A vantagem é que o sistema de banco de dados podem ser alterados sem re-escrever toda chamada para ele na aplicação.

    Fonte: Wikipédia

    ADOdb - Tutorial MYSQL

    PHP foi criado especialmente para a criação de web sites dinâmicos. Para criar estes sites normalmente se utiliza algum tipo de base de dados(banco de dados) desde onde obteremos a informação que queremos mostrar. Isso ja são noticias, perguntas e respostas de um forum de outro tipo de informacão dinâmica. Se usamos php normalmente usaremos MySQL como banco de dados para iniciar nosso site, o problema aparece quando nosso projeto cresce tanto que necessita fazer uso de um outro banco de dados mais robusto .

    Infelizmente o acesso em PHP de cada banco de dados é muito diferente. Para conectarmos ao mysql, deveremos usar o mysql_connect(); quando você decide mudar para um Oracle o Microsoft SQL Server, deve usar ocilogon() o mssql_connect() respectivamente. ele piora também os parâmetros de cada função diferente.

    Uma biblioteca de abstração de dados como ADODB é o que você precisa se você quiser garantir grandemente a portabilidade de sua aplicação. Ele fornece um conjunto de funções comuns para se comunicar com bancos de dados diferentes.

    ADODB vem de " Active Data Objects DataBase" (não muito original mas eficaz). ADODB atualmente suporta MySQL, PostgreSQL, Oracle, Interbase, Microsoft SQL Server, Access, FoxPro, Sybase, ODBC y ADO. Você pode obter ele em: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....


    Fonte: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    Exemplo de MySQL

    O Banco de dados usado com mais frequência em PHP é o MySQL, Então é possivel que Vocês ja estarão familiarizados com o seguinte código. Conectamos todo o server MySQL em localhost, o banco de dados é "mydb", e executaremos uma sequência SQL. O resultado é impresso na tela, uma linha por cada linha obtida.

    Código PHP:
    $db mysql_connect("localhost""root""password");
    mysql_select_db("mydb",$db);
    $result mysql_query("SELECT * FROM employees",$db);
    if (
    $result === false) die("failed"); 
    while (
    $fields mysql_fetch_row($result)) {
    for (
    $i=0$max=sizeof($fields); $i $max$i++) {
    print 
    $fields[$i].' ';
    }
    print 
    "<br>n";

    O código acima está colorido por sessão. a primeira sessão é a sessão do banco de dados. A segunda sessão é a execução da sentença SQL, e a última é a impressão do resultado. O loop while recolhe linhas até o final.

    Aqui o que é Necessário fazer no ADODB

    Código PHP:
    include("adodb.inc.php");
    $db NewADOConnection('mysql');
    $db->Connect("localhost""root""password""mydb");
    $result $db->Execute("SELECT * FROM employees");
    if (
    $result === false) die("failed"); 
    while (!
    $result->EOF) {
    for (
    $i=0$max=$result->FieldCount(); $i $max$i++)
    print 
    $result->fields[$i].' ';
    $result->MoveNext();
    print 
    "<br>n";

    Agora mudar para Oracle é tão simples como mudar a segunda linha do NewADOConnection('oracle'). Vamos a ver cada parte do código.

    Conectando ao Banco de Dados

    Código PHP:
    include("adodb.inc.php");
    $db NewADOConnection('mysql');
    $db->Connect("localhost""root""password""mydb"); 
    A conexão pode parecer algo mais complicado do em MySQL mas explico que o ADODB é totalmente orientado a objetos. Se Você não está familiarizado com a programacão orientada a objetos não se preocupe porque todo o segredo está na funcão NewADOConnection() .

    Para salvar memoria apenas se carrega as funções específicas do banco de dados que vamos utilizar. Cada driver contem um arquivo distinto que se carrega mediante a um include automáticamente.

    Uma vez em que foi carregado o driver que vamos a utilizar mediante a função NewADOConnection() nós conectamos ao la banco de dados usando $db->Connect().

    Executando SQL

    Código PHP:
    $result $db->Execute("SELECT * FROM employees");
    if (
    $result === false) die("failed"); 
    Para enviar uma sequência sql ao motor de banco de dados se utiliza a funcão Execute(). Esta funcão devolve um objeto "recordset" se a execução foi correta a um "false" se haver algum erro.

    Existem dois principais objetos no ADODB. O objeto de conexão e objeto de registros. Quando usar cada um?

    O objeto de conexão ($ db) é responsável pela conexão com o banco de dados e formatação de consultas SQL para o servidor. O objeto recordset ($ result) é responsável pela obtenção dos resultados e formatação dos resultados.

    Recuperando dados

    Código PHP:
    while (!$result->EOF) {
    for (
    $i=0$max=$result->FieldCount(); $i $max$i++)
    print 
    $result->fields[$i].' ';
    $result->MoveNext();
    print 
    "<br>n";

    O processo de obtenção e processamento de dados é lido de um arquivo. Para cada linha observamos se vemos ligação ao final do fichero (EOF).Até chegar ao final do arquivo lemos e movemos para a próxima linha (MoveNext).

    O array $result->fields[] é gerado pelo ADODB antes cada pedido do movenext(). Podemos obter o array associativos ao indexados pelo número do campo.

    Código PHP:
    $ADODB_FETCH_MODE ADODB_FETCH_NUM;
    $rs1 $db->Execute('select * from table');
    $ADODB_FETCH_MODE ADODB_FETCH_ASSOC;
    $rs2 $db->Execute('select * from table');
    print_r($rs1->fields); // muestra array([0]=>'v0',[1] =>'v1')
    print_r($rs2->fields); // muestra array(['col1']=>'v0',['col2'] =>'v1') 
    Como se ve no exemplo,Eu usei dois recorsets diferentes métodos para armazenar dados recuperados a partir da consulta usando $ ADODB_FETCH_MODE ($ ADODB_FETCH_MODE mudança deve ser antes do Execute ()).

    ADOConnection

    O objeto que realiza a conexão com o banco de dados, executa as declarações SQL e também outro conjunto de funcões para uniformizar o formato de sentencias SQL como a concatenação de cadeias no formatos de datas.

    Outras funções especiais

    $recordset->Move($pos) move o recordset a uma linha em particular. ADODB suporta o avanço de linhas em todos banco de dados. Alguns banco de dados não suportam retrocesso no recordset. Você Pode de todas maneiras simular este comportamento usando um cache.

    $recordset->RecordCount() retorna o total de linhas obtidas no recordset. Alguns banco de dados não suportam isso e devolvem un -1.

    $recordset->GetArray() coloca o resultado do recordset em um array.

    rs2html($recordset) esta fução gera una tabela HTML com o resultado do recordset.

    Código PHP:
    include('adodb.inc.php'); 
    include(
    'tohtml.inc.php'); /* includes the rs2html function */
    $conn = &ADONewConnection('mysql'); 
    $conn->PConnect('localhost','userid','password','database');
    $rs $conn->Execute('select * from table');
    rs2html($rs); /* recordset to html table */ 
    Mais funcões úteis podem ser encontradas em Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....

    tópicos avançados
    e inserção de Updates


    Imagine que temos os seguintes bancos para guardar em um banco de dados.

    Código PHP:
    ID 3
    TheDate
    =mktime(0,0,0,8,31,2001/* 31st August 2001 */
    Notesugar why don't we call it off 
    Quando alterar de banco de dados esse formato de dados pode não funcionar.

    O primeiro problema é que cada banco de dados usa as datas em um formato distinto. . MySQL espera YYYY-MM-DD como formato, outros banco de dados requerem outros formatos. O ADODB tem uma funcão que pode nos ajudar DBDate() que converte uma data em formato correto para realizar updates e inserts.

    A única citação campo Note marca é também um problema. Qstr function () pode nos ajudar nisso.

    Então como usamos essas funções?

    Código PHP:
    $sql "INSERT INTO table (id, thedate,note) values (" 
    $ID ','
    $db->DBDate($TheDate) .','
    $db->qstr($Note).")";
    $db->Execute($sql); 
    ADODB tem também duas funções que ajudam a reconhecer se um insert update e delete tem sido corretos.
    $connection->Affected_Rows() (devolve o total de linhas afetadas por um insert o um delete ) y $recordset->Insert_ID() (devolve o último valor gerado por um campo autoincrement e um insert). Nem todos os bases de banco de dados suportam estas funções (veja a documentacão).

    MetaTypes

    Existem funções para recuperar informações de cada campo, o método FetchField($fieldoffset). Isso devolve um objeto com três propriedades name, type y max_length. Si max_length es desconocido o no se puede obtener es = a -1.

    Por exemplo.

    Código PHP:
    $recordset $conn->Execute("select adate from table");
    $f0 $recordset->FetchField(0);

    $f0->name contiene 'adata'$f0->type contiene 'date'
    Cada banco de dados define suas colunas de una manera particular, O ADODB tem uma função especial para uniformizar os tipos de dados, MetaType($type, $max_length).

    C: character and varchar types
    X: text or long character (eg. more than 255 bytes wide).
    B: blob or binary image
    D: date
    T: timestamp
    L: logical (boolean)
    I: integer
    N: numeric (float, double, money)


    Um exemplo sobre o que foi dito acima

    Código PHP:
    $recordset $conn->Execute("select adate from table");
    $f0 $recordset->FetchField(0);
    $type $recordset->MetaType($f0->type$f0->max_length);
    print 
    $type/* debe imprimir 'D' por fecha* 
    /

    Limites de seleção em um SQL

    O ADODB tem uma função que assegura a portabilidade de uma sql em um tema de limites de unm recordset, $connection->SelectLimit($sql,$nrows,$offset), em caso de os produtos Microsoft se usará SELECT TOP, em mysql, postgresql se usará LIMIT e em outros bancos de dados que não o suportem se emula.

    Cache de consulta

    O ADODB permite "cachear" os resultados das consultas SQL em função de um tempo definido. As consultas devem então realizar conexões connection->CacheExecute($secs2cache,$sql) y $connection->CacheSelectLimit($secs2cache,$sql,$nrows,$offset) . n.trad. Los resultados se almacenan en un directorio que debe tener los permisos apropiados.

    Suporte a sessão PHP4

    [LEFT]O ADODB suporta sessões PHP. Pode guardar variaves de sessões em um banco de dados para assegurar a escalabilidade. Para maiss informacão visite docs-session-es.htms

    Se está pensando em escrever um software comercial em PHP e deseja distribui-lo, deve considerar ADODB. Está sendo usado com exito, e, LGPL, que significa que pode ser distribuido com aplicacões comerciais, deixando o seu código propreietario.[/LEFT

    Conclusão

    O ADODB é o suficientemente, robusto e completo para usar em qualquer aplicação. Está sendo atualizado permanentemente e também está tendo muitos seguidores.
    Com certeza ele é uma boa opção.

    FONTE: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
    "Não me sinto obrigado a acreditar que o mesmo Deus que nos dotou de sentidos, razão e intelecto, pretenda que não os utilizemos."
    - Galileu Galilei
    Similar Threads

  • Font Size
    #2
    Muito bom mesmo, continue sempre assim! Obrigado por compartilhar ! ^^
    "Sou a única certeza que vocês terão em toda a VIDA de vocês, eu tardo mais não falho !!! Tenho a certeza que algum dia irei visitar todos vocês"



    Comment


    • Font Size
      #3
      muito bom post , e bom que nós temos mais experiencias

      Comment


      • Font Size
        #4
        boa contribuição!! eu mesmo uso adodb faz mais de 1 ano.

        Comment

        X
        Working...
        X