|
Errori:
Come abbiamo visto nella sezione prececente connettersi ad un database non è diffilicile, in
pratica le connessioni sono tutte simili, varia solo il nome del database ed il criterio di
selezione delle query.
La difficoltà nasce dal fatto che ad una una connessione in generale, viene associato altro
codice php. Magari come concetto tutto potrebbe filare liscio, ma la mancanza di una semplice
virgola potrebbe bloccare tutto il programma.
Importante:
Per comprendere meglio quello scritto sotto dovete sapere che gli errori di connessione con
il database non vengono segnalati a video, questo perchè il database è una macchina autonoma,
che genera dati solo se interrogata.
In caso di errore di connessione il programma continua a girare, le pagine vengono
generate ma il risultato non sarà quello sperato e non vedremo nessun messaggio di errore!!
Vediamo come utilizzare alcuni accorgimenti per limitare il tempo perso:
1) Per prima cosa controllate di aver inserito i punti e virgola ( ; ) in tutte le
righe del programma, è uno degli errori più classici.
2A) Se i ( ; ) sono ok il prossimo passo è quello di controllare le variabili. Per
verificare se lavorano correttamente inserite tanti echo $variabile; quanti sono i
processi da controllare. A video potrete controllare i risultati.
2B) Per verificare se una connessione è attiva associate la connessione
ad una variabile e scrivetela. Se la connessione è attiva vedrete scritto qualcosa, se è
inattiva il risultato sarà (false) ed a video non vedrete niente!!
3) Ricordatevi che in una query di connessione database le variabili che contengono
testo devono essere contenute da apici e doppi apici, se non lo fate la query non genera
nessun risultato, ma non restituisce neppure l'errore!! Semplicemente non risponde a quello
chiesto.
Prevenire gli errori connessione:
C'è una procedura per prevenire gli errori di connessione, ma ricordate che tutto il codice
che verrà introdotto nel programma potrebbe rallentare la sua esecuzione, sopratutto se il
codice deve essere elaborato dal server (host), e quindi la velocità di esecuzione non dipende
dal browser utente.
(Apriamo una parentesi su quello appena detto sopra: Ogni navigatore scarica le pagine e le
visualizza. La velocità con la quale visualizza le pagine dipende (in modo considerevole
ma non solo..) dal tipo di connessione telefonica.
Immaginiamo di attendere in media 7 sec. (ed è un tempo
già alto) se a questi sommiamo altri 5 sec. di tempo che il client utilizza per manipolare
i dati fra MySql e php.... abbiamo perso un utente.)
Chiusa la parentesi vediamo il codice che possiamo inserire nelle query per verificare se la
connessione è andata a buon fine:
N.B.Gli esempi sotto includono le variabili di connessione come nelle sezioni precedenti:
$db_host = "localhost";
$db_user = "nostro nome";
$db_password = "nostra password";
$db_database = "nome nostro database";
$xxx = mysql_connect($db_host,$db_user,$db_password) or die("Errore connessione MySql: " . mysql_error());
mysql_select_db($db_database,$xxx) or die("Errore connessione database: " . mysql_error());
Spiegazione:
mysql_connect(server, login, password);
Questa funzione è quella che consente il collegamento con il nostro database. I valori da
inserire solitamente sono dati dal server dove risiede il database (In fase di registrazione
utente dovete inserire la password ed il login).
Questa funzione se riceve un valore lo passa alla variabile resource
(nel nostro esempio $xxx).
or
L'operatore logico or entra in funzione solo se la funzione che lo precede riceve
'false' ossia in caso di errore di connessione.
die();
La funzione die scrive a video tutto quello che contengono le parentesi.
mysql_error();
Questa funzione interagisce con il database e riporta l'errore che genera. Non pretende
nessun parametro.
L'esempio sopra può essere usato per ogni tipo di collegamento al database. Come già accennato,
un errore di connessione restituisce come risultato 'false' e pertanto non è
visualizzabile a video con il semplice comando echo""; .
Tramite questo espediente riusciamo a trovare l'errore direttamente su MySql ed a
visualizzarlo sul video.
|
|
|
Script
| |
Motore di ricerca script
|
|