Connexion à une base avec PDO/mysqli

Décembre 2016


Avant de pouvoir se jeter dans les joies de la communication avec les bases de données depuis PHP, encore faut-il commencer par le commencement : se connecter à la BDD. Cette fiche présente comment se connecter à différents SGBD avec PDO et mysqli.


PDO

PDO gère plusieurs systèmes de base de données, il existe donc plusieurs moyens de connexion en fonction du système qu'on utilise.
La structure de base pour se connecter et gérer les erreurs est la suivante:
try {
    $bdd = new PDO( ... );
} catch(PDOException $e) {
    echo $e->getMessage();
}
Seules les lignes de la création de l'objet PDO seront données dans les exemples suivants.

mysql

$hote = 'localhost';
$utilisateur = 'username';
$mdp = 'motdepasse';
$nombdd = 'ccm'; // Nom de la base de données
$bdd = new PDO("mysql:host=$hote;dbname=$nombdd", $utilisateur, $mdp);

sqlite

$fichier = "/chemin/vers/la/base.sqlite";
$bdd = new PDO("sqlite:$fichier");
SQLite a même un petit plus: on peut créer des BDD (vierges) dans la mémoire, temporairement. Pratique pour le développement, tester des requêtes ou même se servir d'une BDD avec des données générées:
$bdd = new PDO("sqlite::memory");

mysqli

Style objet

$hote = 'localhost';
$utilisateur = 'username';
$mdp = 'motdepasse';
$nombdd = 'ccm'; // Nom de la base de données
$bdd = new mysqli($hote, $utilisateur, $mdp, $nombdd);
if ($bdd->connect_error) {
    echo 'Erreur de connexion (' . $bdd->connect_errno . ') ' . $bdd->connect_error;
}

Style procédural

$hote = 'localhost';
$utilisateur = 'username';
$mdp = 'motdepasse';
$nombdd = 'ccm'; // Nom de la base de données
$bdd = mysqli_connect($hote, $utilisateur, $mdp, $nombdd);
if (!$bdd) {
    echo 'Erreur de connexion (' . mysqli_connect_errno() . ') ' . mysqli_connect_error();
}

Gestion d'erreur

La gestion d'erreur montrée dans cette fiche est très rudimentaire, et ne se charge que d'afficher l'erreur. Par conséquent, si la connexion échoue, les fonctions de manipulation de BDD suivantes seront exécutées mais vont elles aussi renvoyer une erreur. À vous de gérer ces cas de figure (mais n'utilisez pas
die()
, ça quitte le script brusquement).

A voir également :

Ce document intitulé «  Connexion à une base avec PDO/mysqli  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.