29. Comunicare con PHP e MySQL
In questo capitolo vedremo come ActionScript 3 ci consente di interrogare una base di dati (database) in MySQL, attraverso la cooperazione con il linguaggio server-side PHP 5.
Innanzitutto prepariamo una tabella di esempio in MySQL che conterrà due campi, 'id' e 'nome'.
Di seguito il codice in SQL per creare la suddetta tabella :
CREATE TABLE `tabella` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `nome` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL ) ENGINE = MYISAM CHARACTER SET latin1 COLLATE latin1_general_ci;
Prima di costruire una nostra libreria di esempio che ci faciliterà la comunicazione con PHP, diamo un'occhiata alle classi che useremo in ActionScript 3 per inviare e ricevere i dati.
|
Iniziamo con la classe URLVariables, che ci consentirà di inviare dei dati raccolti con Flash ai nostri script PHP, utilizzando la codifica URL con le coppie nome/valore, come mostrato nell'esempio seguente :
/* Segue una stringa che contiene tre variabili e i rispettivi valori in codifica URL nome=valore */ nome1=valore1&nome2=valore2&nome3=valore3
Di seguito un esempio di inizializzazione di un'istanza URLVariables :
var variables:URLVariables = new URLVariables("nome=mario&cognome=rossi");Per inviare le nostre variabili allo script PHP è sufficiente creare una istanza della classe URLRequest, che ci consentirà di impostare le informazioni e le modalità per eseguire una richiesta HTTP all'URL specificato.
Attraverso URLLoader potremo sfruttare la suddetta istanza di URLRequest effettuando la richiesta HTTP vera e propria, catturandone la risposta.
// Prepariamo le variabili
var utente:URLVariables = new URLVariables("utente=mario");
// Impostiamo la richiesta HTTP
var request:URLRequest = new URLRequest("http://localhost/servizio.php");
// Usiamo il metodo POST per l'invio dei dati
request.method = URLRequestMethod.POST;
// Specifichiamo quali dati inviare durante la richiesta
request.data = utente; // "utente" è l'istanza di URLVariables creata all'inizio
// Impostiamo l'URLLoader per effettuare la richiesta e catturarne la risposta
var loader:URLLoader = new URLLoader();
// Specifichiamo che vogliamo usare la codifica URL per l'invio dei dati
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
// Aggiungiamo un "Listener" che verrà richiamato a richiesta completata per leggere la risposta dello script PHP
loader.addEventListener(Event.COMPLETE, completeHandler);
// Effettuiamo la richiesta passando "request" (istanza di URLRequest) a "loader"
loader.load(request);Una volta effettuata la richiesta, verrà richiamata la funzione specificata come listener per gestire la risposta.
Nell'esempio di codice che segue definirò il metodo completeHandler per leggere il risultato dello script
in PHP :
private function completeHandler(event:Event):void
{
var loader:URLLoader = URLLoader(event.target);
var response:URLVariables = new URLVariables(loader.data);
trace("Return = " + response);
}Prima di procedere alla costruzione di una libreria che ci renda il tutto molto più semplice ed immediato, diamo un'occhiata al codice
in PHP che ci farà da tramite per manipolare il nostro database MySQL.
Lo script del prossimo esempio prenderà in input una variabile utente tramite il metodo di invio POST,
e la inserirà nella tabella MySQL vista all'inizio di questo capitolo :
servizio.php
<?php
$username = "root";
$password = "password";
$database = "test";
$sqlserver = "localhost";
$query = "INSERT INTO tabella (nome) VALUES ('" . $_POST["utente"] . "')";
$connessione_db = @mysql_pconnect($sqlserver, $username, $password);
$check = @mysql_select_db($database, $connessione_db);
$result = intval(@mysql_query($query, $connessione_db));
if ($result > 0) $result = "Inserimento avvenuto con successo";
else $result = "Errore durante l'inserimento";
echo "result=$result";
?>Nel prossimo capitolo creeremo una classe PhpService da poter utilizzare come libreria ogni volta che ci sarà necessario comunicare con PHP e MySQL. |
- Linguaggi:
