Esaurito il discorso riguardante PDO, รจ possibile passare allโanalisi di unโaltra libreria per lโinterazione tra PHP e i database come MySQLi; come anticipato, questโultima รจ stata concepita per gestire appositamente le relazioni tra applicazioni Server Side e gli archivi basati sul MySQL, essa quindi non offre un livello di astrazione indipendente dal DBMS relazionale di riferimento come nel caso di PDO. Possiede perรฒ unโinterfaccia per la Programmazione Orientata agli Oggetti e supporta i Prepared statements, caratteristiche che la rendono preferibile alle classiche (ed ormai obsolete) mysql functions.
Lโestensione MySQLi รจ stata introdotta in PHP con la versione 5.0.0, mentre a partire dalla release 5.3 del linguaggio tale libreria รจ stata attivata e utilizza di default il MySQL Native Driver. Non รจ quindi richiesta alcuna ulteriore operazione per la sua abilitazione.
Nellโesempio seguente viene mostrato il codice necessario per effettuare le operazioni di connessione a MySQL e per la creazione di un database tramite MySQLi, come sarร possibile notare, concettualmente la procedura prevista non differisce in modo particolare da quella descritta nel caso di PDO, esso perรฒ presenta degli aspetti peculiari che verranno affrontati subito dopo la stesura del sorgente.
<?php
/*
creazione di un database con MySQLi.
La prima operazione richiesta sarร quella relativa alla definizione
del blocco dei parametri per la connessione
*/
// nome di host
$host = "localhost";
// username dell'utente in connessione
$user = "mrwebmaster";
// password dell'utente
$password = "...";
// stringa di connessione al DBMS
$connessione = new mysqli($host, $user, $password);
// verifica su eventuali errori di connessione
if ($connessione->connect_errno) {
echo "Connessione fallita: ". $connessione->connect_error . ".";
exit();
}
// esecuzione della query per la creazione del database
if (!$connessione->query("CREATE DATABASE nuova_rubrica")) {
echo "Errore della query: " . $connessione->error . ".";
}else{
echo "Databese creato correttamente.";
}
// chiusura della connessione
$connessione->close();
?>
Per consentire la connessione tra applicazione e DBMS sarร necessario disporre anche in questo caso dei parametri richiesti, essi sono nel dettaglio:
- host, cioรจ lโindirizzo della postazione che ospita lโinstallazione di MySQL, generalmente esso รจ "localhost" (soprattutto nel caso di script sviluppati nella macchina locale), ma puรฒ essere anche un nome di dominio o un indirizzo IP;
- username: il nome dellโutente che possiede i permessi per effettuare operazioni che prevedano lโinterazione con il DBMS e i dati da esso gestiti;
- password: la parola chiave che lโutente precedentemente citato dovrร utilizzare per autenticarsi su MySQL.
Tali informazioni potranno essere utilizzate per la creazione di una stringa di connessione rappresentata dallโistanza dellโoggetto di classe mysqli; nel caso specifico lโapplicazione controlla tramite il costrutto condizionale if/else e lโutilizzo dei metodi connect_errno() e connect_error() lโeventuale verificarsi di errori in fase di connessione. Nel caso in cui si dovessero verificare dei problemi, il primo metodo restituirร il codice identificativo dellโerrore prodotto dallโultimo tentativo di connessione effettuato, mentre il secondo metterร a disposizione una stringa descrittiva dellโerrore generato.
Nel caso in cui, invece, non dovessero presentarsi degli errori in connessione, lโapplicazione proseguirร nel suo funzionamento passando alla fase relativa alla creazione del database, chiamato nel nostro caso "nuova_rubrica", che potrร essere eseguita tramite il passaggio al metodo query() dellโistruzione SQL CREATE DATABASE seguita dal nome del database desiderato. Indipendentemente dallโesito di questโultimo passaggio la connessione verrร chiusa grazie allโinvocazione del metodo close().
Ora che si dispone di un database su cui operare, sarร possibile passare allโistanza dellโoggetto di classe mysqli un ulteriore parametro, quello relativo al nome del database stesso; in questo modo sarร possibile ottenere un sorgente completo per la connessione e la selezione della base di dati che potrร essere salvato in un file (denominato ad esempio "connessione.php"):
<?php
/*
Connessione al DBMS e selezione del dataabse.
*/
# blocco dei parametri di connessione
// nome di host
$host = "localhost";
// username dell'utente in connessione
$user = "mrwebmaster";
// password dell'utente
$password = "r5n8k6nd";
// nome del database
$db = "nuova_rubrica";
# stringa di connessione al DBMS
// istanza dell'oggetto della classe MySQLi
$connessione = new mysqli($host, $user, $password, $db);
// verifica su eventuali errori di connessione
if ($connessione->connect_errno) {
echo "Connessione fallita: ". $connessione->connect_error . ".";
exit();
}
?>
Tale file potrร essere richiamato in qualsiasi momento tramite una semplice inclusione, ciรฒ eviterร di dover riscrivere il codice contenuto al suo interno ogni volta che esso diventi necessario per operare sul database.