PHP/Programmazione/MySQL
PHP, come già specificato, può accedere a database. Il tipo di database più utilizzato sul web è MySQL.
Connessione ad un server mysql e selezione del database
modificaPer la connessione al server, PHP ha una funzione specifica: mysql_connect(), la cui sintassi è: mysql_connect(host_db, username, password);
Esempio:
<?php
mysql_connect("localhost","tuousername","tuapassword")
or die("Errore nella connessione MySQL");
?>
Con questo codice, PHP tenta la connessione a localhost con l'username e la password forniti, in caso di fallimento, stampa il messaggio di errore.
Con questa funzione il PHP si connetterà a MySQL e sarà pronto per lavorare. Per selezionare il database su cui dobbiamo eseguire le nostre query abbiamo la funzione mysql_select_db: mysql_select_db(nomedb, [puntatore]);
Esempio:
<?php
$db = mysql_connect("localhost", "tuousername", "tuapassword")
or die("Errore nella connessione MySQL");
mysql_select_db("test", $db) or die("Database inesistente");
?>
Adesso PHP tenta la connessione al database test dal server localhost al quale ci siamo connessi prima. Nel caso il database non esistesse o in caso di errore, verrebbe inviato il messaggio "Database inesistente". Come potete vedere, in questo caso la funzione mysql_connect() è stata assegnata alla variabile $db, che in questo caso diventa un puntatore di risorse. In questo modo, possiamo aprire più connessioni contemporanee assegnate a diversi puntatori.
Esecuzione di query
modificaDopo aver aperto il database, possiamo eseguire delle operazioni con i dati presenti al suo interno (vedi MySQL), come la creazione o eliminazione di tabelle o inserimento e richiesta di dati. Per effettuare una richiesta dati MySQL al server si utilizza la funzione mysql_query():
<?php
$db = mysql_connect("localhost", "tuousername", "tuapassword")
or die("Errore nella connessione MySQL");
mysql_select_db("test", $db) or die("Database inesistente");
if (mysql_query("SELECT * FROM registrati",$db)) {
echo "Query eseguita con successo";
} else {
echo "Errore nell'esecuzione della query: ".mysql_error();
}
?>
Questo codice, recupera tutti i record della tabella registrati del database test sul server localhost. In caso di errore verrà visualizzato un messaggio contenente la descrizione dell'errore. È utile inserire la funzione mysql_query sempre in un puntatore (diverso da quello del database), per l'utilizzo dei dati
Funzioni PHP - MySQL
modificaNel caso in cui avessimo bisogno di prendere dei dati da un database dovremo utilizzare la funzione mysql_fetch_array() che crea un array con indice, i nomi delle colonne del database e come dati il primo dell'elenco dei risultati della query. Supponiamo di avere una tabella così strutturata:
Nome | Cognome | Data_nascita | Città |
---|---|---|---|
Tizio | Rossi | 20/11/1957 | Milano |
Caio | Bianchi | 12/03/1985 | Roma |
Sempronio | Verdi | 08/06/1967 | Napoli |
Con questo codice:
<?php
$db = mysql_connect("localhost", "tuousername", "tuapassword")
or die("Errore nella connessione MySQL");
mysql_select_db("test", $db) or die("Database inesistente");
$query = mysql_query("SELECT * FROM registrati",$db);
$risultato = mysql_fetch_array($query);
?>
verrà creato un array $risultato contenente solo una riga della tabella strutturato così:
- $risultato['Nome'] = "Tizio"
- $risultato['Cognome'] = "Rossi".
- $risultato['Data_nascita'] = "20/11/1957".
- $risultato['Città'] = "Milano".
Per vedere tutte le righe della tabella, bisogna fare così:
<?php
$db = mysql_connect("localhost", "tuousername", "tuapassword")
or die("Errore nella connessione MySQL");
mysql_select_db("test", $db) or die("Database inesistente");
$query = mysql_query("SELECT * FROM registrati",$db);
while($riga = mysql_fetch_array($query))
{
$risultato[]=$riga;
}
?>
e allora la variabile $risultato sarà:
- $risultato[0]
- $risultato[0]['Nome'] = "Tizio"
- $risultato[0]['Cognome'] = "Rossi".
- $risultato[0]['Data_nascita'] = "20/11/1957".
- $risultato[0]['Città'] = "Milano".
- $risultato[1]
- $risultato[1]['Nome'] = "Caio"
- $risultato[1]['Cognome'] = "Bianchi".
- $risultato[1]['Data_nascita'] = "12/03/1985".
- $risultato[1]['Città'] = "Roma".
- $risultato[2]
- $risultato[2]['Nome'] = "Sempronio"
- $risultato[2]['Cognome'] = "Verdi".
- $risultato[2]['Data_nascita'] = "08/06/1967".
- $risultato[2]['Città'] = "Napoli".