CONNEXION À LA BASE DE DONNÉES PAR PHP


Pour gérer la base de donnée et l'exploiter par PHP, il est nécessaire de commencer à se connexion au serveur considéré (local ou distant) et précisément à la base de donnée que l'on a créée.


FORMULATION DE LA CONNEXION

La commande suivante, que nous n'expliciterons pas en détail, permet la connexion au serveur et à une base de donnée à partir des paramètres indiqués:

<? try
{
$bdd = new PDO('mysql:host=monhote;dbname=mabase', 'utilisateur', 'monmotdepasse');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>

monhote: nom de l'hôte (serveur local ou distant)
mabase: nom de la base
utilisateur: nom de l'utilisateur
monmotdepasse: mot de passe

Pour une connexion locale par exemple, les paramètres seront:

hôte: localhost
base: locale
utilisateur:root
mot de passe:


Voici donc la commande php qui vous permet de nous connecter en local (en l'occurrence sans mot de passe):

<? try
{
$bdd = new PDO('mysql:host=localhost;dbname=locale;charset=utf8', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>

Si nous écrivons cette commande dans chaque fichier où nous voulons nous connecter, il nous faudrait changer ce code pour transferrer les fichiers sur le serveur distant car il n'a pas les même paramètres d'accès. il existe une solution qui permet de changer ce code automatiquement pour tous les fichiers, c'est de l'enregistrer dans un fichier indépendant qu'on nommera par exemple include_connexion.php (fichier sans aucun en-tête ni autre élément de code que ce code de connexion ci-dessus en incluant ses balises php), puis de l'appeler dans n'importe quel fichier par la commande suivante:

include("include_connexion.php");

Voila par exemple un fichier d'essai nommé par exemple monfichier.php où on fait appel à la connexion.

<!DOCTYPE HTML>
<html><head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<TITLE>programmation PHP <META NAME="Description" CONTENT="programmation">
<META NAME="Keywords" CONTENT="">
<META NAME="Author" CONTENT="Claude Fernandez">
<link rel="stylesheet" type="text/css" media="all" href="style_programmation.css">

</head>
<body">

echo "<br>Bonjour en php<br>";

<?
include("include_connexion.php");
?>

</body>
</html>

Si aucun message d'erreur n'apparaît, c'est que nous sommes bien connecté à la base de donnée. Si on introduit une erreur, par exemple en nommant la base locale par lcale (au lieu de son nom locale), vous obtiendrez le message du genre:

Erreur : SQLSTATE[HY000] [1049] Unknown database 'lcale'

Astuce
Un include peut porter n'importe quel nom pourvu que son extension soit php, néanmoins il est conseillé de nommer tous vos includes avec le préfixe: include_, par exemple: include_mon fichier.php, ce qui vous permettra de tous les retrouver ensemble dans le répertoire des fichiers.

Notons que l'include de connexion pour le fichier distant devra dans ce cas se nommer lui-aussi include_connexion.php. Pour le créer et le conserver, il sera donc nécessaire de le mettre dans un sous-répertoire du répertoire local sur lequel nous travaillons. Une autre solution consiste à le nommer par exemple include_connexion_serveur_distant, le télécharger ainsi sur le serveur puis le renommer in situ sur le serveur à l'aide du logiciel ftp s'il permet cette fonctionnalité.

Remarque Si l'on travaille directement sur le serveur distant, il est tout de même nécessaire de créer un include de connexion indépendant car on est susceptible de changer les paramètres à un moment ou un autre: serveur, base de donnée...

SOMMAIRE