back to top

MySQL functions: connessione, creazione database e tabella, selezione del database

Come anticipato, a partire dalla versione 5.5 di PHP le MySQL functions sono state classificate come ufficialmente deprecate, ciò significa che utilizzandole lo sviluppatore riceverà una notifica dal motore del linguaggio in fase di esecuzione che ne sconsiglierà l’adozione. Ciò però non significa che tali costrutti possano essere definitivamente ignorati.

Le MySQL functions, infatti, non sono da ritenersi deprecate perché inadeguate a svolgere il compito per il quale sono state concepite, ma per il fatto di non disporre di un’interfaccia nativa per la programmazione ad oggetti e per non fornire il supporto per i Prepared Statements. Detto questo, milioni di siti Web funzionano ancora oggi senza alcun problema sulla base di esse.

Conoscere le MySQL functions significa quindi poter intervenire sulle numerose applicazioni che tuttora le impiegano, motivo per il quale questa trattazione si concluderà con una loro analisi dettagliata ma fortemente orientata all’utilizzo pratico.

Per motivazioni "storiche", quindi, ritengo opportuno accennare, nella parte conclusiva della nostra guida, a queste funzioni invitando tuttavia il lettore ad orientarsi sui costrutti analizzati nelle precedenti lezioni.

Connessione al DBMS

Per effettuare una connessione al Database engine MySQL tramite le MySQL functions è possibile utilizzare la funzione mysql_connect() alla quale passare i seguenti parametri:

  • host: il nome della macchina ospitante il DBMS, questo dato potrebbe essere un nome di dominio così come un indirizzo IP, ma nella maggior parte dei casi (soprattutto nelle installazioni locali) è "localhost";
  • user: è il nome dell’utente abilitato ad interagire con il Database manager;
  • password: è la credenziale necessaria per l’autenticazione dell’utente in connessione.

Tali informazioni dovranno essere passate alla funzione nell’ordine evidenziato dall’esempio seguente:

<?php
/*
  connessione a MySQL con le MySQL functions
*/
//creazione dell'handle di connessione
$connessione = mysql_connect("localhost", "mrwebmaster", "...") or die ("Impossibile connettersi a MySQL: " . mysql_error());

// chiusura della connessione
mysql_close($connessione);
?>

Una volta stabilita la connessione, se non dovessero essere necessarie ulteriori operazioni a carico del DBMS, si potrà chiuderla tramite la funzione mysql_close() alla quale passare come parametro la variabile handle associata ad essa (nel nostro caso "$connessione").

Creazione di un database e di una tabella

L’esempio seguente mostra come in poche righe di codice si possano eseguire numerose procedure; nell’ordine infatti abbiamo: la connessione a MySQL, la creazione del database, la selezione di quest’ultimo, la creazione e il popolamento di una tabella nonché la chiusura della connessione.

<?php
/*
  creazione di un database e di una tabella con le MySQL functions
*/
// connessione al DBMS
$connessione = mysql_connect("localhost", "mrwebmaster", "...") or die ("Impossibile connettersi a MySQL: " . mysql_error());

// creazione del database
$creazione_db = mysql_query("CREATE DATABASE elenco_utenti") or die ("Impossibile creare il database: " . mysql_error());

// selezione del database
$selezione_db = mysql_select_db("elenco_utenti") or die ("Impossibile selezionare il database: " . mysql_error());

// creazione della tabella
$creazione_tb = mysql_query("CREATE TABLE nominativi (
  id_utente INT(4) NOT NULL AUTO_INCREMENT,
  nome_utente VARCHAR(30) NOT NULL,
  cognome_utente VARCHAR(40) NOT NULL,
  email_utente VARCHAR(255) NOT NULL,
  PRIMARY KEY (id_utente))") or die ("Impossibile creare la tabella: " . mysql_error());
  
// chiusura della connessione
mysql_close($connessione);
?>

La fase di connessione verrà effettuata tramite la già citata funzione mysql_connect() mentre si farà ricorso a mysql_query() per la creazione del database; a questa funzione verrà passata come argomento un’istruzione SQL di tipo CREATE DATABASE alla quale associare il nome dell’archivio desiderato.

Una volta creato il database (nel nostro caso "elenco_utenti"), il nome di quest’ultimo potrà essere selezionato tramite la funzione mysql_select_db() che lo accetterà come parametro.

Fatto questo si potrà procedere con la creazione della tabella ("nominativi") che presenterà in tutto 4 campi: "id_utente", numerico intero non nullo e autoincrementale della lunghezza di massimo 4 cifre, seguito da "nome_utente", "cognome_utente" e "email_utente", tutti VARCHAR non nulli rispettivamente della lunghezza massima di 30, 40 e 255 caratteri.

Anche la query per la creazione della tabella verrà eseguita tramite la funzione mysql_query() che la accetterà come parametro e, una volta completata tale operazione, si potrà chiudere la connessione con mysql_close().

Da notare l’impiego del già utilizzato mysql_error() per la segnalazione di eventuali errori prodotti durante l’interazione con il DBMS:

Creare il file di selezione e connessione

Ora che, sappiamo come connettere un’applicazione a MySQL, abbiamo creato un database e descritto la procedura corretta per la sua selezione, potremo creare un file riutilizzabile che ci permetta di non dover riscrivere le fasi di connessione e selezione ogni volta che queste dovessero essere richieste.

<?php
/*
  connessione al DBMS e selezione del database con le MySQL functions
*/
// connessione al DBMS
$connessione = mysql_connect("localhost", "mrwebmaster", "...") or die ("Impossibile connettersi a MySQL: " . mysql_error());

// selezione del database
$selezione_db = mysql_select_db("elenco_utenti") or die ("Impossibile selezionare il database: " . mysql_error());
?>

Il codice appena proposto potrà essere salvato all’interno di un file, denominato per esempio "connessione.php", che sarà richiamabile all’interno di uno script PHP attraverso la già nota funzione include().

Pubblicitร 
Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.