Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Verifica del funzionamento dell'estensione php-mysql

Controllare la correttezza dell'interazione MySQL - PHP attraverso una connessione di prova al database con codice PHP
Controllare la correttezza dell'interazione MySQL - PHP attraverso una connessione di prova al database con codice PHP
Link copiato negli appunti

PHP funziona, MySQL funziona, ma i due strumenti riescono a collaborare? Per esserne certi, dobbiamo assicurarci
che l'estensione PHP per MySQL (il pacchetto php-mysql o php5-mysql) sia correttamente caricata. Normalmente non
ci sono problemi, il tutto viene gestito in automatico quando installiamo i pacchetti, ma la
verifica da effettuare è relativamente semplice e ci può togliere un eventuale dubbio.

Creiamo uno script PHP che esegue semplicemente la connessione a MySQL e la selezione del database di test (un
database inizialmente vuoto, accessibile a qualsiasi utente, utilizzabile appunto per i test, che andrebbe
comunque eliminato se il server MySQL viene messo in produzione).

<?php
// Connessione a MySQL
$link = mysql_connect('localhost', 'root', '') or die('Connessione fallita: ' . mysql_error());
// Selezione database di test
mysql_select_db('test') or die('Selezione DB fallita: ' . mysql_error());
// E' tutto ok, chiudo la connessione
echo 'OK';
mysql_close($link);
?>

Lo script è banalissimo e la sintassi delle funzioni, in caso di dubbio, può essere verificata sul manuale di Php. L'unica nota riguarda l'eventuale fallimento delle funzioni
mysql_connect() o mysql_select_db(), che provocherebbe la terminazione dello script, mediante die(), e l'output
del messaggio d'errore, tramite mysql_error().

Il file va salvato con estensione .php all'interno della DocumentRoot di Apache, ad esempio con nome
"testdb.php", e va richiamato da browser digitando l'indirizzo http://localhost/testdb.php. Se tutto va per il
verso giusto, otterremo un rassicurante "OK" sul nostro monitor. In caso contrario, uno dei possibili errori
potrebbe essere:

Fatal error: Call to undefined function: mysql_connect() in /var/www/testdb.php on line 3

Questo significa che la funzione "mysql_connect()" non è stata definita ("undefined"), ma essendo una funzione
esistente, questo è sintomo del fatto che l'estensione php-mysql non è caricata correttamente. Andiamo quindi a
spulciare il file di configurazione php.ini, cercando nella sezione delle estensioni, la riga seguente:

; extension=mysql.so

Il punto e virgolo iniziale trasforma questa direttiva in un commento, per cui è necessario toglierlo per far sì
che l'oggetto mysql.so, contenente le funzioni mysql_* venga effettivamente caricato. Nel caso in cui non sia
presente una riga del genere, è necessario inserirla.

Ti consigliamo anche