Commenti alla pagina php di esempio cds_semplice.php

Commenti alla pagina php di esempio cds_semplice.php
$myusername="root";
Una tipica istruzione php. Si notano:
• Il ; finale come in C#
• L’uso del $ prima del nome della variabile. I nomi di variabili in PHP sono sempre precedute dal
simbolo del dollaro.
mysql_connect("localhost", $myusername, $mypassword)
Apre una connessione ad un server MySQL. La funzione restituisce un identificativo di connessione
MySQL in caso di successo oppure il valore FALSE in caso di errore. Testando quindi il risultato della
funzione come se fosse una variabile booleana si può capire se la connessione è stata effettuata
correttamente.
Gli argomenti sono: il nome del server di database (localhost è il computer locale), username e
password necessari per il collegamento.
mysql_select_db("cdcol")
Seleziona un database. L’argomento è il nome del database. In caso di errore la funzione restituisce il
valore FALSE.
mysql_real_escape_string($_REQUEST['titolo'])
Converte gli eventuali caratteri speciali presenti nel testo (ad esempio apici e apostrofo) in
“sequenza di escape” ovvero una modalità di scrittura di una stringa utilizzabile in SQL.
Ad esempio: la stringa “Zak's “ diventa “Zak\’s”. La barra che precede l’apice indica che si tratta del
carattere apice e non del delimitatore di stringa.
$result = mysql_query("SELECT id,titel,interpret,jahr FROM cds ORDER
BY interpret")
mysql_query("INSERT INTO cds (titel,interpret,jahr) VALUES('$titolo','$interprete',$anno)")
Esegue una query sul database con il quale si è create la connessione. L’argomento della funzione è
la frase SQL da eseguire. L’argomento può essere una costante o una variabile o essere costruita in
modo misto, come nell’esempio, utilizzando la particolare sintassi php che permette di inserire il
valore delle variabili all’interno di costanti stringa, a patto che siano utilizzati i doppi apici per la
delimitazione della stringa, come nel secondo esempio.
La query può restituire un risultato oppure essere semplicemente eseguita sul server. Nel primo caso
in esempio le righe ottenute dalla SELECT sono memorizzate in $result, pronte per essere elaborate
(vedi mysql_fetch_array). Nel secondo caso, non viene restituito nulla dal momento che l’istruzione
SQL è una query di inserimento.
while ($row = mysql_fetch_array($result)) {
La funzione mysql_fetch_array ecupera una riga dall’insieme di record restituiti da una query di
selezione e la inserisce in un array associativo, ovvero un array nel quale l’indice può essere non
soltanto un numero ma anche un nome simbolico. Questa modalità è utile per i database perché così
è possibile utilizzare i nomi dei campi. Nell’esempio, $row è un array che contiene sequenzialmente
UN record alla volta. Per accedere ai singoli campi si usa la sintassi $row[‘nome campo’] (vedi
htmlspecialchars).
Il costrutto while serve a realizzare la scansione sequenziale di tutti i record restituiti dalla query.
Quando non ci sono più record, la mysql_fetch_array restituisce il valore FALSE. In questo modo, la
while termina l’esecuzione del ciclo.
htmlspecialchars($row['titel'])
Converte i caratteri speciali in “entità HTML”. Serve quando si inseriscono dati provenienti dal
database in HTML per consentire la corretta visualizzazione di eventuali caratteri speciali presenti
nel record.
$_REQUEST['interprete']
$_REQUEST indica, in modogenerale, l’insieme dei dati che sono stati inviati allo script da un modulo
HTML (o anche in altri modi, ad es. i cookie). L’argomento tra parentesi quadre è il nome del singolo
campo, così come è stato definito nel modulo di partenza, attraverso il descrittore NAME del campo
del modulo.
die()
Interrompe l’esecuzione dello script. Le successive istruzioni, sia php che HTML non sono eseguite.
echo "<tr valign='bottom'>"
echo "<td class='tabval'><b>".htmlspecialchars($row['interpret'])."</b> </td>"
L’istruzione echo consente di scrivere codice HTML da PHP, senza “chiudere” lo script PHP. Consente
inoltre di “mescolare” stringhe fisse appartenenti all’HTML con variabili PHP, come mostrato nel
secondo esempio, nel quale il contenuto del campo “interpret”, proveniente dal database, viene
mostrato, inserito all’interno di un tag <TD> in modo da visualizzare il contenuto in forma tabellare.