Propel, la gestione efficace e comoda dei database in PHP5 (Parte I)

Immaginiamoci la tipica libreria on-line con il catalogo dei prodotti offerti. La struttura del database sarà simile a quella della Fig. 1. Nel modulo di amministrazione del nostro ipotetico negozio, si trovano diversi form che assicurano l'introduzione dei dati da parte del proprietario relativi a nuovi libri e contemporaneamente fornire informazioni sull'edizione e sull'autore (Fig. 2).

L'implementazione più semplice di questo form di query per database richiede diverse azioni ricorrenti (Listing 1). Questo aspetto ha degli importanti riscontri negativi. Primo, scriviamo quasi per intero il codice, il cui compito è 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 tipo di database (ed es. MySQL), il che, rende difficile le modifiche e lo sviluppo del sistema creato. Accade questo nei casi, qualila creazione di vetrine Web, nei quali la maggior parte delle operazioni consiste nella raccolta dei dati dal database e nella loro presentazione. Se il nostro programma è orientato ad oggetti, dovremo ancora convertire i risultati ottenuti (tabelle associative) in oggetti.

Listing 1. Il modo più semplice di servire 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 >>>

 



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Redazione
Ti interessano altri articoli su questo argomento?
Chiedi alla nostra Redazione!