PHP/Programmazione/MySQL

Wikibooks, manuali e libri di testo liberi.
CopertinaPHP/Copertina

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[modifica]

Per 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[modifica]

Dopo 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[modifica]

Nel 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".