Pdo

bismark2005

Utente Attivo
8 Mar 2011
70
0
0
Nel manuale nel capitolo relativo al PDO ad un certo punto dice:
"La classe PDO ha un metodo chiamato query(). Gli si passa un'istruzione Mysql e restituisce un oggetto di classe PDO"

$result=$connection->query("SHOW TABLES")

Come fa un metodo a restituire un oggetto di classe PDO? Istanzia la classe PDO?
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Quando per esempio esegui il bootstrap per la connessione scrivi qualcosa come questo:
PHP:
$db = new PDO($col , 'username', 'password');
quindi stai istanziando.
 

bismark2005

Utente Attivo
8 Mar 2011
70
0
0
Porca la miseria ragazzi, per capire questa classe Pdo e come mai foreach() riusciva ad "attraversarela classe" ho dovuto studiarmi anche il pattern iterator :-(

Qualsiasi classe che implementa l'interfaccia Traversible può essere “attraversata” dal costrutto foreach(). Tuttavia l'interfaccia Traversible è un'interfaccia vuota, al suo posto vanno usate altre due interfacce (Iterator e IteratorAggregate) che a loro volta implementano Traversible.

Iterator presenta alcuni metodi non implementati che vanno definiti nella classe che implementa l'interfaccia. Ad esempio:

Codice:
Class QuadratoNumeri implements Iterator{
    private $inizio;
    private   $fine;
    private $cur;

    public function __construct($inizio, $fine)
       {
       $this->inizio=$inizio;
       $fine->=$fine;
       }

    public function rewind(){
       $this->cur=$inizio;
    }

    public function key{
       return $this->cur;
    {
    public function current(){
       return pow($this->cur,2);
    }
    public function next{
       $this->cur++;
    }
    public function valid(){
       return $this->cur <= $this->fine;
    }
    }

    $obj=newQuadratoNumeri(3,7);

    foreach($obj as $key=>$value){
    print “Il quadrato di $key è $value\n”;
    }

Siccome bisogna separare l'implementazione della classe dal suo iteratore, si fa uso dell'intefaccia IteratorAggregate che contiene un metodo pubblico getIterator. Il metodo restituisce un oggetto iteratore che gestisce l'iterazione per la classe corrente.

Codice:
Class QuadratoNumeri implements IteratorAggregate{
       private $inizio;
       private $fine;
    public function __construct($inizio,$fine)
    {
    $this->inizio=$inizio;
    $this->fine=$fine;
    }
    public function getIterator()
    {
    return new QuadratoNumeriIteratore($this);
    }
    …......
    ….....
    }

Ovviamente questo meccanismo va applicato anche alla Classe Pdo.

Ho comprato il manuale Php 6 Guida per lo sviluppatore (io che pensavo il db fosse un panino da mangiare) e quando ho iniziato a studiarlo mi stavo buttando dalla finestra :) Mi sono trovato di fronte a concetti mai visti prima (classe, oggetto, ereditarietà, polimorfismo,ecc. ecc). Poi dopo molto tempo e ore di studio unite a smadonnamenti vari sono riuscito a "carburare" ma quanta fatica!!!!

E se penso che ora mi aspetta il capitolo sull'ORM......

Ps: Eliox ma tu sei Claudio Garau? Se si volevo ringraziarti pubblicamente. Senza la tua guida sul Pdo non credo ce l'avrei fatta!
 
Discussioni simili
Autore Titolo Forum Risposte Data
L pdo (stampare un valore con ritorno a funzione) PHP 0
K [PHP] PDO.bindingParam PHP 2
M [PHP] Interrompere DROP TABLE con PDO PHP 0
M [PHP] Alternativa a datagrid con PDO PHP 6
M [PHP] Creare un menu a tendina con pdo PHP 18
M [PHP] Array di array - PDO PHP 2
3_g errore con mysql insert in PDO PHP 29
W [PHP] Creazione classe PDO PHP 4
F PHP, PDO e visualizzazioni errori e/o eccezioni PHP 3
3_g [PHP] mvc, pdo e classi... PHP 7
F Help-PDO copiare Database MySQL PHP 3
F php PDO mysql connessione(select_db) PHP 3
Fredyss redirect a altra pagina php dopo commit su postgresql con PDO PHP 1
K Non trovo l'errore! PDO MYSQL UPDATE PHP 2
C [PHP] PDO prepared statement - select query errore PHP 7
ANDREA20 [PHP] Errore $this->db_connection = new PDO PHP 0
CristianB72 Non riesco a connettermi al DB tramite PDO Database 10
MarcoGrazia [PHP][PDO][MySQL] Non registra ma non da nemmeno errori. PHP 0
MarcoGrazia [PHP][PDO] Come connettersi al database Snippet PHP 0
MarcoGrazia [PDO][PHP[MySQL] Piccolo modulo di ricerca in un sito tramite l'operatore LIKE Snippet PHP 1
neo996sps [PHP e funzioni con PDO] Funzione per generare corpo tabella PHP 1
Marco_88 fetchAll() PDO PHP 13
D Paginazione dati PDO PHP 8
N Problemi estrazione / visualizzazione immagini dal database con PDO PHP 2
R Organizzazione PHP Mysql PDO PHP 15
M PDO e mysqli PHP 1
MarcoGrazia [PDO][MySQL] L'update non avviene PHP 1
MarcoGrazia [PDO] insert che non inserisce e non da errori PHP 1
Monital PDO e connessioni a più database PHP 4
Monital Da mysql a PDO PHP 3
S PDO accertarsi del avvenimento della query PHP 1
voldemort PHP PDO: non c'ho capito niente PHP 1
L [RISOLTO]PDO if per "non ci sono dati" PHP 8
L pdo e sistema crud PHP 1
L Paginazione con pdo. PHP 8
L pdo con login PHP 2
L PDO : bindParam PHP 3
L login con pdo/mysql PHP 2
S Problema di login con PDO PHP 2
B Esercizio PDO PHP 20
S Meglio mysqli o PDO ? PHP 2
borgo italia query con PDO PHP 11
borgo italia classe pdo PHP 9
M PDO prepare PHP 1
L da mysql a pdo PHP 4

Discussioni simili