PHP OOP - Scopriamo MySQLi e scriviamogli un intera classe
Pubblicato: 17 September 2012 Mai Modificato
Salve! Ancora un numero per il Video Giornale, e siamo a 7.
Oggi ho scelto di mostrare la nuova libreria per interagire con il RDBMS MySQL dal PHP. E questa libreria è MySQLi. E noi ne vedremo le basi e poi creiamo una classe per lavorarci in stile programmazione orientata agli oggetti.
Ho deciso di fare questo video tutorial sopra tutto perché è da molto che l'uso di 'mysql_'(la vecchia libreria per connettersi e interagire con il database) è scoraggiata ed è consigliato in ogni parte del web la nuova ottimizzata e migliorata libreria MySQL improved 'mysqli_' e anche perché la mia video lezione precedente sull'OOP ha avuto molto successo secondo me.
Li, nel quinto numero del video giornale mostro le basi della programmazione ad oggetti e un esempio in cui creo due classi che si estendono per la connessione al database. Se non siete pratici con la object oriented programming che è un prerequisito per queste video lezioni, passate a vedere almeno la prima mezz'ora del video dove vi presento la OOP (OOP in PHP | Programmazione Orientata agli ogetti con PHP).
Qui, invece parto col presupposto che sapete già la OO e prima di tutto spiego com'è la nuova libreria , quali vantaggi/pregi ha sulla vecchia e poi prendendo un database di esempio mostro come usarla e sopra tutto come usare la sua interfaccia orientata agli oggetti, visto che MySQLi può essere usato completamente in OO. Nella seconda video lezione e nella terza creiamo una classe con i metodi che servono per preparare eseguire la query, per connettere disconnettere dal db, per ripulire i dati passati nell'interrogazione e per estrarre i dati in un oggetto o in un array. E infine nella quarta video lezione vediamo come implementare la classe su un sito.
Basi di mysqli, un intera classe per lavorare in modo più comodo, veloce e personalizzato e l'implementazione su un qualsiasi sito ! (in più pratica con la OOP) in quattro Video Lezioni ! E qui anche tutti i file da scaricare.
Buona visione! Vi aspetto nei commenti!
Programmazione ad oggetti in PHP (basi Mysqli - connect, prepare, execute, fetch)
Da tempo stanno scoraggiando l'utilizzo della libreria mysql in php, promuovendo sempre di più la nuova migliorata e ottimizzata libreria mysqli (mysql improved), che offre maggiore flessibilità , da la possibilità di preparare e eseguire le interrogazioni legando parametri, permette connessioni criptate e compresse, offre un interfaccia del tutto Orientata agli Oggetti (OOP) e tantissime altre cose. In questa video lezione vediamo le migliorie principali e l'uso della libreria in stile orientato ad oggetti per connettersi/disconnettersi , preparare query , eseguire query e formattare i dati in un array o oggetto.
Programmazione ad oggetti in PHP (classe per lavorare con Mysqli)
Ora che sappiamo come utilizzare la nuova libreria, ora che siamo convinti che MySQLi è la scelta migliore per il nostro sito creiamo una classe per lavorarci. In questo modo potremo accedere alle funzioni della libreria con il nome che vogliamo, possiamo aggregare il funzionale e personalizzarlo. Ad esempio se la connessione non avviene abbiamo bisogno di un messaggio di errore, nella classe possiamo scrivere direttamente nel metodo della connessione un nostro messaggio e averlo ovunque utilizziamo la classe, se lo vogliamo cambiare basta cambiarlo nella classe.
Programmazione ad oggetti in PHP (classe Mysqli - prepare, query, fetch, escape)
Finiamo la classe per lavorare con mysqli scrivendo gli ultimi metodi rimasti , quello per la preparazione della query (che memorizza la query passata per l'interrogazione), quello che esegue la query o restituisce "errore" (che utilizza la funzione di libreria “mysqli->query();”e memorizza i dati in $result), un metodo fetch che convertirà i dati estratti dal db in un oggetto o in un array (qui abbiamo sempre una funzione di libreria “result->fetch_array()” o “result->fetch_object()”) e per ultimo il metodo che darà un tocco di sicurezza alle nostre query ripulendole da simboli speciali che possono corrompere l'interrogazione (il famoso “mysqli->real_escape_string()” che bisognerà chiamare sulle query prima di utilizzarle).
Programmazione ad oggetti in PHP (classe Mysqli - implementazione su un sito)
Adesso possiamo prendere il file con la nostra classe copiare il file sul sito in cui lo vogliamo utilizzare, includerlo nelle pagine dove vogliamo utilizzarlo e utilizzare i metodi personalizzati delle nostre classi. Tutto in 4 semplici passi: 1. $db = new Mysqlimproved; (abbiamo creato l'oggetto della classse), 2. $db->prepare("SELECT * FROM `tabella_db` WHERE page_name={$page_name}"); (nel mio caso la query è cosi, e qui la prepariamo), 3. $db->query(); (eseguiamo l'interrogazione), 4. $db->fetch('array') (e in fine estraiamo i dati in un array o in un oggetto in quest altro modo “$db->fetch() o $db->fetch('object')”). E al resto ci pensa la classse scritta , manca ovviamente l'errore nel caso “fetch” non restituisce niente e il codice che recupera e ripulisce “$page_name”.