Da qualche giorno è iniziata la mia collaborazione con Francesco Masetti (che colgo l’occasione per ringraziare per la disponibilità e per la fiducia riposta in me)efmdesignblog.com.

Una delle prime attività quando si approccia ad un liguaggio come PHP è quella di collegarsi ad un database. PHP mette a disposizione diversi metodi di connessione al database tra cui l’estensione MySQLi.

Premessa

Un buon sviluppatore PHP che giornalmente si appoggia a database MySQL già saprà che tale estensione verrà definita deprecata a partire dalla versione 5.4 di PHP. Probabilmente l’approccio sarà un po’ più “morbido” da parte del team di sviluppo di PHP ma una cosa è certa, è meglio trovare da subito una valida alternativa. Le possibilità sono due: le PDO oppure l’estensione MySQLi.

PDO e MySQLi a confronto

Entrambe le estensioni sono indubbiamente più veloci della ormai “obsoleta” MySQL ed entrambe sfruttano nativamente l’approccio ad oggetti.

La differenza sostanziale nelle due è che MySQLi è un estensione sostanzialmente creata per i database MySQL, non permetterà quindi di interfacciarsi con SQLite o MSSQL mentre invece le PDO permettono senza modificare alcuna riga di codice (se non i parametri di connessione) di interfacciarsi con diversi tipi di database tra cui anche Oracle e PostreSQL.

Definire quale delle due sia la migliore è difficile, noi però andiamo ad esplorare l’estensione MySQLi.

La connessione

In tutto questo sovrapporsi di novità l’unica cosa che non cambia sarà il file di configurazione, il classico config.php. Tale file avrà soltanto un’elenco di costanti per la connessione al database:

# Database configuration
define("DB_HOST", "host");
define("DB_NAME", "nome_database");
define("DB_USER", "utente_database");
define("DB_PASS", "password_database");

Una volta creato il file e definite le costanti sarà necessario includerlo nel nella pagina dove effettueremo la connessione:

// Richiamo il file di configurazione
if (file_exists("config.php")==true) {
    require_once("config.php");
} else {
    die("File config.php mancante");
}

Non resta che verificare che il webserver disponga dell’estensione MySQLi e poi effettuare la connessione passandogli come parametri le costanti definite nel file config.php!

// Verifico l'esistenza dell'estensione MySQLi
if (extension_loaded("mysqli")==true) {
    // Connessione al database MySQLi
    $DB = New mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
    if (mysqli_connect_error()){
        die("Errore di connessione al database");
     } else {
        die("Connessione avvenuta con successo!");
    }
} else {
    die("Estensione MySQLi mancante");
}

Ovviamente nella nostra applicazione potremmo togliere la riga di “Connessione avvenuta con successo!”
L’oggetto $DB sarà quello che utilizzeremo per eseguire le query, chiudere la connessione ecc.