Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: [PILLOLA] Pear DB

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    313

    [PILLOLA] Pear DB

    INIZIO PRIMA PUNTATA

    Ora qui vi spiego come usare le classi PEAR DB che per me solo la cosa
    migliore per gestire database e poi è indipendente...

    Per prima cosa ecco una pagina di esempio

    1.<?php
    2.require('DB.php');
    3.require('PEAR.php');
    4.$db = DB::connect("pgsql://postgres:postgres@localhost/dbname");
    5.$sql = "SELECT * FROM tabella";
    6.$qry = $db->query($sql);
    7.while($row = $qry->fetchRow(DB_FETCHMODE_ASSOC)) {
    8. print "
    " . $row["nome_campo1"];
    9. print "
    " . $row["nome_campo2"];
    10.}
    11.$db->disconnect();
    12.?>

    Nella riga 2 e 3 abbiamo incluso dei file delle classi PEAR DB, di
    solito quando si installa il php(su linux) sono di default, ma se
    volete essere sicuri quando installa il php vi basterà aggiungere
    --with-pear.
    La riga 4 è molto importante poichè noi effettuiamo la connessione al
    database, ora ve la spiego spezzata

    (pgsql://postgres:postgres@localhost/dbname)
    ($db_type://$db_user:$db_pass@$db_host/$db_name);
    $db_type = "pgsql";
    Questo paramentro vi permette di "RENDERE LE VOSTRE PAGINE PHP
    ALTAMENTE INTERFACCIABILI CON MOLTI FAMOSI DB":

    Oracle7/8/8i = oci8
    MySQL = mysql
    PostgreSQL = pgsql
    InterBase = ibase
    MS SQL Server= mssql
    ODBC = odbc
    SyBase = sybase
    Informix = ifx
    FrontBase = fbsql
    Mini SQL = msql

    ...vi basteranno?:)

    Il resto dell stringa è:
    $db_user = "username";
    $db_pass = "password";
    $db_host = "nome_host";
    $db_name = "nome_database";

    Ora che siamo connessi dobbiamo solo fare query e manipolare dati!
    Nella riga 5 scriviamo una semplice query e nella riga 6 la lanciamo
    Quando impostiamo la riga 6, la variabile $qry diventa un oggetto
    della classe e quindi per associare la query all'estrattore di dati
    ci basterà fare $row = $qry->fetchRow(DB_FETCHMODE_ASSOC)
    In questo modo $row diventa un array associativo con i nomi, se
    invece dentro la le parentesi di fetchRow non mettiamo nulla,
    i dati li differenziamo con i numeri.
    In fine alla riga 11 facciamo una semplice disconnessione.

    C'è molto da parlare su PEAR DB, infatti questa è la prima puntata!
    Spero di darvi la prossima al più presto dove parleremo di come
    inserire i dati ed altri piccoli dettagli.

    Ciao e buon divertimento

    FINE PRIMA PUNTATA
    Windows era mia moglie,
    ora siamo separati in pc...
    Linux sta per diventare mia moglie
    -Ciociaria Linux User Group-
    http://www.cilug.org

  2. #2
    grazie.. stvo giusto pensando di rendere parametrico il database nei miei script.... ora leggo e poi attendo le prossime puntate

  3. #3
    Ciao,
    PEAR DB è molto interessante e merita di essere studiato a fondo...mi chiedo però perchè non creino un'estensione in C con le stesse funzionalità....perchè così com'è comprende una classe di dimensioni enormi e non è certo il massimo a livello di prestazioni
    per favore NIENTE PVT TECNICI da sconosciuti

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    313
    Originariamente inviato da Fabio Heller
    Ciao,
    PEAR DB è molto interessante e merita di essere studiato a fondo...mi chiedo però perchè non creino un'estensione in C con le stesse funzionalità....perchè così com'è comprende una classe di dimensioni enormi e non è certo il massimo a livello di prestazioni
    Fare delle funzioni C sarebbe ok, ma in quel caso PEAR perderebbe
    tutta la sua bellezza, poichè un programmatore PHPsi può estendere
    la classe e poi lato server durante l'installazione(su linux) è
    abilitata di default.
    Windows era mia moglie,
    ora siamo separati in pc...
    Linux sta per diventare mia moglie
    -Ciociaria Linux User Group-
    http://www.cilug.org

  5. #5
    Originariamente inviato da Fabio Heller
    Ciao,
    PEAR DB è molto interessante e merita di essere studiato a fondo...mi chiedo però perchè non creino un'estensione in C con le stesse funzionalità....perchè così com'è comprende una classe di dimensioni enormi e non è certo il massimo a livello di prestazioni
    potremmo sempre scriverla noi ...
    eXtending-Php.net coming soon ...

  6. #6
    Ciao Dark,
    ahem...io avrei bisogno di fare un ripassino di C/C++, però sarebbe davvero una bella cosa.

    Ah, mi hanno consigliato di provare
    http://www.php.net/manual/en/ref.dbx.php

    i database supportati non sono molti però, e neppure le funzionalità
    per favore NIENTE PVT TECNICI da sconosciuti

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    4
    Bella Pillola ,a quando tutta la confezione?E la posologia?
    Scherzi a parte ,molto interessante ,è un pò che mi aggiro intorno a PEAR e non mi decido ad approfondire
    Una bella cura è quel che ci vuole! :metallica

  8. #8
    ci do un'okkiata...a proposito di database: stò preparando una classe che, oltre le funzionalità standard di connessione ecc..., ha quella di permettere di creare oggetti query (qualcosa tipo zope, ma non così avanzata) da cui ricavare query SQL sostituendo gli elementi che variano..qualcosa tipo:

    Codice PHP:
    $m = new MYSQL_simple("localhost","root","");
    $m->switch_to_db("menageriale");
    $select1_test $m->cselect_query(array("articoli.codice","clienti.id"),array("articoli","clienti"),array("articoli.id = 'cazshhcas'"),array(1,0),array("articoli.data",ASC));
    //$select1_test->get();
    //SELECT articoli.codice,clienti.id FROM articoli,clienti WHERE articoli.id = 'cazshhcas' ORDER BY articoli.data ASC LIMIT 1,0 
    //$select1_test->_exec() restituirà i result della query
    $select2_test $select1_test->where(array("articoli.test = 'ciao'"));
    //$select2_test->get();
    //SELECT articoli.codice,clienti.id FROM articoli,clienti WHERE articoli.test = 'ciao' ORDER BY articoli.data ASC LIMIT 1,0 
    oltetutto ha una gestione degli errori, un controllo sui campi inseriti e altra roba.

    Per ora funziona con array (non tutti i campi sono obbligatori) e compila solo query SELECT, poi proverò ad aggiungere un parser SQL, e a compilare altri tipi di query aggiungendo funzionalità più complesse.

    L'ho sviluppata (anzi: la stò sviluppando) perchè a me serve nell'ultimo lavoro che stò facendo,ma anke perchè risulta abbastanza comoda da usare soprattutto visto che, molte volte, non si usano query a database molto complesse anke se ci si trova in progetti medio-grandi. Oltretutto risulta comodo creare query dinamiche ed altro ...

    Secondo te può servire svilupparla appieno??Oppure me la tengo per me e basta??
    eXtending-Php.net coming soon ...

  9. #9
    Originariamente inviato da Fabio Heller
    Ciao Dark,
    ahem...io avrei bisogno di fare un ripassino di C/C++, però sarebbe davvero una bella cosa.
    a proposito: come si scrivono le estensioni in C per PHP?? tipo come si fa per PYTHON o in modo diverso??
    eXtending-Php.net coming soon ...

  10. #10
    Originariamente inviato da Fabio Heller
    ... e non è certo il massimo a livello di prestazioni
    codice:
    Comparing ADODB with PEAR DB, MDB, dbx, Metabase and Native MySQL
    Benchmark was to select 82 rows from the products table 200 times.
    The tests were repeated 5 times. Connection times were excluded
    from the benchmark. Lower values are better. All numbers are in 
    seconds. 
    
    MySQL	 1.12 	1.12	1.17	1.15	1.14
    ADOdbext 1.30	1.31	1.29	1.30	1.32 
    dbx ext	 1.35	1.38	1.41	1.37	1.36	(index only)
    ADOdb	 1.43	1.47	1.47	1.44	1.45
    dbx ext	 1.53	1.52	1.52	1.52	1.55	(index/assoc/info)
    PhpLib	 1.53	1.62	1.64	1.64	1.57   
    MDB      1.77	1.75	1.75	1.76	1.73
    PEAR DB	 2.91	2.90	2.85	2.83	2.84	(fetchInto)
    PEAR DB	 3.14 	3.13	3.22	3.12	3.16	(fetchRow)
    M'base	 4.51	4.55 	4.46 	4.54 	4.52    (numeric indexes)
    M'base	 4.99	4.72	4.71	4.71	4.72	(assoc indexes)
    
            Average	 Overhead
    MySQL	 1.14	   -
    ADOdbext 1.30     14%
    dbx      1.37     20% (index only)
    ADOdb	 1.45	  27%
    dbx      1.53     34% (index/assoc/info)
    PhpLib	 1.60	  40%
    MDB      1.75	  54%
    PEAR DB  2.87	 152% (fetchInto)
    PEAR DB  3.15	 176% (fetchRow)
    M'base	 2.52	 296% (numeric cols)
    M'base	 4.77	 318% (assoc cols)
    
    
    I was still surprised at how slow some of the libraries were, even
    though a code inspection had already given strong hints on the expected
    performance of the libraries.
    
    (da: http://phplens.com/lens/adodb/)
    eXtending-Php.net coming soon ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.