In questa guida vedremo come accedere a un database in PHP utilizzando MySQLi o PDO.
Il PDO supporta la gestione multipla di sistemi database (fino a 12 diversi driver di database). La struttura base per potersi connettere a un database e gestire gli errori è la seguente:
try {
$bdd = new PDO( ... );
} catch(PDOException $e) {
echo $e->getMessage();
}
Mentre per poter procedere alla creazione delle linee generali dell'oggetto PDO sarà necessario seguire gli esempi:
$host = 'localhost';
$user = 'username';
$password = 'password';
$dbname = 'ccm'; // name of database
$db = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
$file = "/path/to/base.sqlite";
$bdd = new PDO("sqlite:$file");
Con SQLite si ha un altro vantaggio, possiamo infatti creare un database temporary blank nella memoria. Questo può essere utile per sviluppare, per le test query o per utilizzare database con dati generati:
$bdd = new PDO("sqlite::memory");
$host = 'localhost';
$user = 'username';
$password = 'password';
$dbname = 'ccm'; // Name of database
$db = new mysqli($host, $user, $password, $dbname);
if ($bdd->connect_error) {
echo 'Connection error (' . $bdd->connect_errno . ') ' . $bdd->connect_error;
}
$host = 'localhost';
$user = 'username';
$password = 'password';
$dbname = 'ccm'; // Name of database
$bdd = mysqli_connect($host, $user, $password, $dbname);
if (!$bdd) {
echo 'Connection error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error();
}
La gestione dell'errore, sopra mostrato è molto rudimentale. Di conseguenza, se la connessione cade, le funzioni di manipolazione BDD saranno eseguite nonostante un errore. Per poter gestire questo genere di situazioni ( non si utilizza il die() ma si lancia uno script.