PHP/Programmazione/MySQL
Wikibooks, manuali e libri di testo liberi.
- Introduzione PHP/Introduzione
- Installazione e configurazione PHP/Installazione e configurazione
- Programmazione PHP/Programmazione
- Una pagina PHP PHP/Programmazione/Una pagina PHP
- echo PHP/Programmazione/echo
- Commenti PHP/Programmazione/Commenti
- Variabili PHP/Programmazione/Variabili
- Operatori PHP/Programmazione/Operatori
- Array PHP/Programmazione/Array
- Condizioni PHP/Programmazione/Condizioni
- Cicli PHP/Programmazione/Cicli
- Funzioni di base PHP/Programmazione/Funzioni di base
- Funzioni personalizzate PHP/Programmazione/Funzioni personalizzate
- Variabili globali PHP/Programmazione/Variabili globali
- $GLOBALS PHP/Programmazione/Variabili globali/$GLOBALS
- $_GET PHP/Programmazione/Variabili globali/$_GET
- $_POST PHP/Programmazione/Variabili globali/$_POST
- $_SESSION PHP/Programmazione/Variabili globali/$_SESSION
- $_COOKIE PHP/Programmazione/Variabili globali/$_COOKIE
- $_SERVER PHP/Programmazione/Variabili globali/$_SERVER
- File PHP/Programmazione/File
- Immagini PHP/Programmazione/Immagini
- Espressioni regolari PHP/Programmazione/Regexp
- Programmazione orientata agli oggetti PHP/Programmazione/OOP
- Programmazione avanzata con le classi PEAR PHP/PEAR
- PHP e i database PHP/Database
- Funzioni PHP per l'accesso ai database
- Funzioni MySQL PHP/Programmazione/MySQL
- Funzioni Postgresql
- Funzioni Sqlite PHP/Sqlite
- Database e object oriented PHP/Dboop
- Funzioni PHP per l'accesso ai database
- PHP Design Pattern PHP/PHP Design Pattern
- Smarty PHP/Smarty
- Sicurezza delle applicazioni web PHP/Sicurezza
- PHP CLI: Command Line Interpreter PHP/Cli
- PHP GTK2: applicazioni desktop in PHP PHP/Gtk
- Wikibook credits
PHP, come già specificato, può accedere a database. Il tipo di database più utilizzato sul web è MySQL.
[modifica] Connessione ad un server mysql e selezione del database
Per la connessione al server, PHP ha una fumzione 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.
[modifica] Esecuzione di query
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 inviare comandi 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
[modifica] Funzioni PHP - MySQL
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".

