Propel, la gestione efficace e comoda dei database in PHP5 (Parte I)
Immaginiamoci la tipica libreria on-line con il catalogo deiprodotti offerti. La struttura del database saràsimile a quella della Fig. 1. Nel modulo di amministrazionedel nostro ipotetico negozio, si trovano diversi form cheassicurano l'introduzione dei dati da parte delproprietario relativi a nuovi libri e contemporaneamentefornire informazioni sull'edizione e sull'autore(Fig. 2).
L'implementazione più semplice di questo form diquery per database richiede diverse azioni ricorrenti(Listing 1). Questo aspetto ha degli importanti riscontrinegativi. Primo, scriviamo quasi per intero il codice, il cuicompito è rappresentare fisicamente i dati(presentazione del contenuto da inserire nel database,trascrizione degli identificatori alle relative tabelle,ecc.) e tutto ciò assorbe tempo prezioso al progetto.
In secondo luogo,il codice è scritto per un certo tipodi database (ed es. MySQL), il che, rende difficile lemodifiche e lo sviluppo del sistema creato. Accade questo neicasi, qualila creazione di vetrine Web, nei quali la maggiorparte delle operazioni consiste nella raccolta dei dati daldatabase e nella loro presentazione. Se il nostro programmaè orientato ad oggetti, dovremo ancora convertire irisultati ottenuti (tabelle associative) in oggetti.
Listing 1. Il modo più semplice diservire il form di esempio
<?php$link = mysql_connect('localhost', 'root', '');if (!$link) { die('Non è possibile collegarsi al DB: ' . mysql_error()); }$db_selected = mysql_select_db('bookstore', $link);if (!$db_selected) { die ('Non posso utilizzare il DB "bookstore": ' .mysql_error()); }//Editore$sql = 'INSERT INTO publisher (name) VALUES '.'("'.mysql_escape_string($_POST['publisher_name']).'")';$result = mysql_query($sql);if (!$result) { die(mysql_error()); }$publisher_id = mysql_insert_id();//Autore$sql = 'INSERT INTO author (first_name, last_name) VALUES '.'("'.mysql_escape_string($_POST['firs_name']).'" ,"' .mysql_escape_string($_POST['last_name']).'")';$result = mysql_query($sql);if (!$result) { die(mysql_error()); }$author_id = mysql_insert_id();//Libro$sql = 'INSERT INTO book (publisher_id, author_id, title, isbn)'.'VALUES '.'(' .$publisher_id.','.$author_id.','.'"'.mysql_escape_string($_POST['title']).'" ,"' .mysql_escape_string($_POST['isbn']).'")';$result = mysql_query($sql);if (!$result) { die(mysql_error()); }$book_id = mysql_insert_id();mysql_close($link);echo "Aggiunto libro con ID: $book_id";?>
<<< Precedente - Continua >>>
- Articolo precedente Fare il backup di un database
- Articolo successivo Gestione dei database in PHP5 (Parte II)