Imparare il PHP: Database
autore: Orebla
xx/xx/xx
Connetersi al database MySql:
Finalmente arriviamo ad uno dei pezzi forti
dei linguaggi lato-server e sopratutto del PHP, cioè il momento in cui si
spiega il modo per connettersi ai database. In questa guida spiegherò come
connettersi ad uno dei più famosi database Open Source del mondo (almeno fino
ad ora), cioè MySql.
Ora invece che perdere tempo nel spiegarvi
cosa è MySql oppure le sue potenzialità (che sono veramente molte), vi posto
due URL. Il primo è riferito alla definizione descritta su WikiPedia eccolo:
http://it.wikipedia.org/wiki/Mysql
il secondo invece è l'Home Page ufficiale da cui scaricare il software e anche
molte altre utility e sopratutto dove sono presenti le guide per le diverse
funzioni:
http://dev.mysql.com/. Vi sarà
utile anche il link alla documentazione, così non dovrete fare inutili
ricerche, eccolo:
http://dev.mysql.com/doc/.
Partiamo subito con la spiegazione delle
funzioni fondamentali che useremo per connetterci a MySql, come vedrete poi in
seguito PHP utilizza diverse funzioni per ogni tipo di database come mSql, MS
Sql Server... e tanti altri.
Allora le funzioni principale e
fondamentali per svolgere solamente operazioni basilari con PHP e MySql sono:
-
mysql_connect [info]
-
mysql_select_db [info]
-
mysql_close [info]
-
mysql_query [info]
Bene ora che vi ho elencato le funzioni
principali, quelle che in sostanza ci serviranno per fare delle operazioni
elementari ve le spiegherò un po' più in dettaglio, anche se di fianco ad
ognuno ho messo il link alla documentazioni ufficiale di PHP.net in italiano.
Specifico un particolare, non è vero che queste sono tutte le funzioni per
eseguire operazioni basilari, infatti manca la funzione per estrarre i risultati
siccome i risultati possono essere estratti in diversi modi queste ve le
illustrerò più avanti.
Partiamo con il connetterci al database,
ecco la funzione ed i suoi campi fondamentali per la connessione:
mysql_connect ( "INDIRIZZO
SERVER", "NOME UTENTE AL SERVER", "PASS CONNESSIONE AL
SERVER");
vi specifico che questa funzione
restituisce
TRUE in caso di connessione corretta e
FALSE in caso
di connessione non avvenuta a seguito di errori.
Bene come potete intuire dalla descrizione
degli elementi richiesti sono tutti dati che ci vengono forniti dal nostro
hosting al momento della richiesta del servizio di database.
Spieghiamo in dettaglio gli elementi
richiesti dalla funzione,
-
INDIRIZZO SERVER: se lasciato vuoto
assumerà il valore di default "localhost:3306" che poi è
il valore che si inserisce nel 90% dei casi, non importa mettere la porta
seguita dai due punti. Dovremo quindi mettere "localhost".
Specifico che questo indirizzo è valido solamente per le connessioni in cui
lo script si trova sullo stesso server del database!! Non vi preoccupate in
quanto se fosse diverso il vostro hosting vi avrebbe informato;
-
NOME UTENTE AL SERVER: se lasciato
vuoto assumerà il nome dell'utente che stà eseguendo il processo, in tutti
i casi questo è il nome con ci connettiamo al server. In molti hosting
corrisponde con il nome di connessione FTP. Anche qui il nostro Host ci
avrà fornito in anticipo i dati di connessione. Se no chiedeteglieli!;
-
PASS CONNESSIONE AL SERVER: se lasciato
vuoto non assume alcun valore e quindi risulta vuoto, inutile descrivere ulteriormente
questo campo, stessa cosa del NOME UTENTE.
Vi illustro subito una piccola pillola per
aumentare la dinamicità dei vostri script. La funzione di connessione accetta
anche se nei suoi campi vengono inserite delle variabili. Quindi se avete molti
script che utilizzano una connessione al database vi basterà creare un file,
così detto di "configurazione" in cui saranno contenuti gli elementi
sopra citati. Ogni qual volta dovrete connettervi vi basta richiamare il file
con un include e mettere i nomi delle variabili. Sembra difficile ma ora vi
faccio vedere come fare!!
ESEMPIO:
mysql_connect("localhost","nome","password");
Ecco questo basta per aprire una
connessione al database, però non basta per selezionare un database ed eseguire
operazioni, infatti il valore assunto da quella funzione sarà BOOLEANO [
?]
ma presenta anche il valore di "resource" cioè di indice che ci
servirà per la selezione del database. Mettiamo perciò il suo valore come
variabile:
$connessione =
mysql_connect("localhost","nome","password");
Ora aggiungiamo un piccolo pezzo di codice
per verificare che la connessione sia stata effettuata con successo,
$connessione =
mysql_connect("localhost","nome","password") or
die("Connessione non riuscita: " .
mysql_error());
print ("Connesso con
successo");
Bene il codice che ho aggiunto alla fine
della variabile serve per verificare che la connessione sia stata effettuata con
successo, potevamo fare tutto anche con un ciclo IF, ma così è più veloce.
Come vedete la forma "or die" si attiva in caso in cui la funzione
restituisca FALSE e quindi connessione mancata, si attiva poi anche la funzione
mysql_error()
[info]
che ci illustra gli errori avvenuti. In caso di valore TRUE ci stamperà a
schermo "Connesso con successo".
Ora vi scrivo il codice completo se volete
fare una prova:
$connessione = mysql_connect("localhost","nome","password") or
die("Connessione non riuscita: " .
mysql_error());
print (>"Connesso con
successo");
mysql_close($connessione);
?>
Ecco se volete provare questo è il codice
complteo, vi ho aggiunto mysql_close() [
info],
perchè se volete testare lo script non lasciate connessioni inutili aperte,
questo porterà ad un elevato consumo di RAM sul vostro server. Per questo
DOVETE RICORDARVI DI INSERIRLO IN OGNI SCRIPT!!!
Bene se lo script vi stamperà
"Connesso con successo" possiamo proseguire, se no vuole dire che c'è
qualche problema ed è meglio se vi rileggete il pezzo sopra :-).
Ora connettiamoci ad un database per
eseguire il nostro primo comando SQL, non mi dilungo sui comandi SQL perchè
questa guida vi mostra solamente la connessione!!
Bene ora che ci siamo connessi dobbiamo
utilizzare la funzione mysql_select_db
[info]
per selezionare il database, vi ricordo (IMPORTANTE), che il database
deve essere già esistente!!! Se no vi restituirà errore!
Ecco la funzione:
mysql_select_db
( "NOME DATABASE ESISTENTE", $connessione )
Non c'è molto da spiegare devo solo dirvi
che dovete mettere il nome della "RESOURCE" creato con la funzione
precedente quindi inserite come secondo argomento il nome di quella variabile!!
La funzione restituirà, anche lei, valori BOOLEANI [
?]
per il controllo se la selezione è avvenuta o meno. TRUE in caso positivo e
FALSE in caso negativo.
Passiamo subito ad un esempio, utilizzando
sempre quello di prima per la connessione:
<?
$connessione = mysql_connect("localhost","nome","password")or
die("Connessione non riuscita: " .
mysql_error());
print ("Connesso con
successo");
mysql_select_db("prova",
$connessione) or die("Errore nella selezione del database";
mysql_close($connessione);
?>
Bene se tutto è proceduto per il meglio e
avrete come risultato ottenuto in output sul monitor solamente "Connesso
con successo" tutto ha funzionato!!
Farò poi una guida per l'utilizzo di query
SQL, questa voleva solamente essere una guida introduttiva alla connessione ai
database MySql.