Comment se Connecter à une Base de Données MySQL en PHP
Pour les débutants en développement de sites web, il est très utile de savoir comment utiliser les scripts PHP pour se connecter à MySQL. Cela vous permet de modifier, d’afficher ou de gérer les tables de la base de données MySQL. Dans cet article, nous allons vous présenter les méthodes les plus simples pour y parvenir. C’est parti !
Sommaire
Création d’une base de données MySQL (optionnel)
Cette étape est nécessaire si vous ne disposez pas d’une base de données MySQL. Si vous êtes un utilisateur de Hostinger, vous pouvez facilement en créer une nouvelle via le hPanel de Hostinger en quelques étapes :
- Localisez le menu des bases de données MySQL dans la section Bases de données.
- Remplissez les champs nécessaires et cliquez sur Créer.
Important ! Notez les références de la base de données MySQL que vous venez de créer pour l’étape suivante. Notez les informations d’identification de la base de données MySQL que vous venez de créer. N’oubliez pas non plus le nom d’utilisateur et le mot de passe de la base de données !
Deux façons pour un script PHP de se connecter à MySQL
Il existe deux méthodes pour se connecter à une base de données MySQL en PHP : MySQLi et PDO.
MySQLi est l’acronyme de MySQL Improved. Il s’agit d’une extension exclusive de MySQL qui ajoute de nouvelles fonctionnalités à l’interface d’une base de données MySQL. MySQLi est à la fois procédural et orienté objet, le premier étant l’attribut hérité de l’ancienne version de MySQL.
Le MySQL original décompose une tâche en procédures linéaires, étape par étape, ce qui le rend difficile à modifier car il faut éditer le code depuis le haut. En revanche, MySQLi considère les données comme un ensemble d’objets interchangeables dotés de fonctions, ce qui permet aux utilisateurs d’ajouter ou de supprimer facilement des données.
PDO est l’acronyme de PHP Data Object. Contrairement à MySQLi, PDO est uniquement orienté objet et prend en charge un certain nombre de types de bases de données utilisant PHP, comme MySQL, MSSQL, Informix et PostgreSQL.
Important ! Les fonctions MySQL originales sont obsolètes et ne doivent pas être utilisées car elles ne sont pas sûres et ne sont plus maintenues ou développées.
L’une des fonctionnalités les plus importantes qu’ils supportent tous deux est celle des instructions préparées, qui accélère le temps nécessaire à MySQL pour exécuter plusieurs fois la même requête. Elles sont également utilisées pour prévenir les attaques par injection SQL lorsque des modifications sont apportées à la base de données ou que des données fournies par l’utilisateur sont insérées dans une requête ou une instruction de la base de données.
Quelle que soit la méthode utilisée, vous aurez besoin des informations correctes pour vous connecter à la base de données MySQL que vous avez créée. C’est là que les détails de la base de données MySQL que vous avez précédemment sauvegardés s’avèrent utiles.
Vous avez également besoin du nom de serveur ou du nom d’hôte correct pour la configuration. Hostinger utilise “localhost” comme nom d’hôte de son serveur MySQL. En général, c’est le nom que vous voudrez utiliser si vous téléchargez votre script PHP sur le même serveur que la base de données.
En revanche, si vous vous connectez à une base de données à partir d’un emplacement distant (par exemple, votre ordinateur), vous devrez utiliser l’adresse IP du serveur MySQL. Pour plus de détails, contactez votre hébergeur afin qu’il vous fournisse les informations correctes sur le nom d’hôte à utiliser.
Utilisation de MySQLi pour connecter un script PHP à MySQL
Suivez ces étapes pour utiliser MySQLi afin de connecter un script PHP à MySQL :
- Allez dans le gestionnaire de fichiers -> public_html.
2. Créez un nouveau fichier en cliquant sur l’icône dans le menu latéral.
3. Enregistrez le fichier sous databaseconnect.php. Vous pouvez remplacer le nom par ce que vous voulez, assurez-vous simplement qu’il utilise l’extension php.
4. Double-cliquez pour ouvrir le fichier et copiez-collez-y les lignes de code suivantes. Remplacez les quatre premières valeurs sous <?php par les informations d’identification que vous avez notées plus tôt :
<?php $servername = "localhost"; $database = "u123456789_DatabaseName"; $username = "u123456789_User"; $password = "MyStr0ngPa$!"; // Create connection $conn = mysqli_connect($servername, $username, $password, $database); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "Connected successfully"; mysqli_close($conn); ?>
Le code MySQLi expliqué
La principale méthode utilisée dans ce script est mysqli_connect(). Il s’agit d’une fonction interne de PHP qui permet d’établir une nouvelle connexion avec un serveur MySQL.
Au début de notre code, nous voyons quelques déclarations de variables et des valeurs assignées à ces variables. En général, nous avons besoin de quatre d’entre elles pour établir une connexion correcte à la base de données : $servername, $database, $username, et $password. Dans le code, nous définissons les détails de notre base de données en tant que valeurs pour ces variables, afin qu’elles puissent être transmises à la fonction.
Si la connexion n’aboutit pas, la fonction die() est exécutée. Cela tue notre script et nous donne un message d’erreur de connexion que nous avons défini. Par défaut, le message d’erreur de connexion de MySQL dira Connection failed suivi d’un message d’erreur exact décrivant le problème.
En revanche, si la connexion MySQL est réussie, le code affichera Connected successfully (Connecté avec succès).
La dernière partie du code est mysqli_close, qui fermera simplement la connexion à la base de données manuellement. Si elle n’est pas spécifiée, la connexion MySQL se fermera d’elle-même à la fin du script.
Utilisation de PDO pour connecter un script PHP à MySQL
L’autre méthode pour se connecter à MySQL en utilisant PHP consiste à utiliser PDO. Cette méthode est similaire à la précédente, mais avec une légère variation :
- Dans le dossier public_html, créez un fichier nommé pdoconfig.php et insérez le code suivant. Comme toujours, n’oubliez pas de remplacer les valeurs de remplacement par les informations de votre base de données. Enregistrez et fermez le fichier une fois que vous avez terminé :
<?php $host = "localhost"; $dbname = "u123456789_DatabaseName"; $username = "u123456789_User"; $password = "MyStr0ngPa$!";
2. Créez un autre fichier nommé databaseconnect.php dans le même répertoire, mais avec le code suivant. Si vous avez nommé le fichier précédent différemment, assurez-vous de changer la valeur de require_once.
<?php require_once 'pdoconfig.php'; try { $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); echo "Connected to $dbname at $host successfully."; } catch (PDOException $pe) { die ("Could not connect to the database $dbname :" . $pe->getMessage()); }
Explication du code PDO
Une connexion PDO à une base de données nécessite la création d’un nouvel objet PDO avec un nom de source de données (DSN), un nom d’utilisateur et un mot de passe.
Le DSN définit le type de base de données, le nom de la base de données et toute autre information relative à la base de données si nécessaire. Ce sont les variables et les valeurs que nous avons déclarées dans le fichier dbconfig.php, référencées une fois par la ligne require_once dans le fichier databaseconnect.php.
Dans cette dernière, vous trouverez le code “try…catch…”. Cela signifie que le script essaiera de se connecter à MySQL en utilisant le code fourni, mais qu’en cas de problème, le code de la section catch sera exécuté. Vous pouvez utiliser le bloc catch pour afficher des messages d’erreur de connexion ou exécuter un autre code si le bloc try échoue.
Si la connexion est réussie, le message “Connected to $dbname at $host successfully” sera affiché. En revanche, si la tentative échoue, le code catch affichera un simple message d’erreur et interrompra le script.
Contrairement à MySQLi, il n’est pas nécessaire de fermer manuellement la connexion lorsque vous avez terminé d’utiliser un script PDO. Elle est automatiquement fermée lorsque l’objet PDO est détruit ou lorsque votre script se termine.
Vérification de la connectivité et dépannage des erreurs courantes
Pour vérifier si la connexion est réussie, accédez à votre domaine comme suit : yourdomain/databaseconnect.php. Si vous donnez un autre nom au fichier PHP, veillez à le modifier en conséquence.
Vous verrez “Connected successfully” ou des variantes de ce message si tout fonctionne sans problème.
Si la connexion n’a pas abouti, vous verrez quelque chose de différent. Les messages d’erreur sont légèrement différents pour MySQLi et PDO.
Erreur de mot de passe incorrect
Cette erreur se produit si l’on modifie le mot de passe ou tout autre identifiant dans le code PHP (mais pas dans la base de données).
Si vous voyez un message “Accès refusé” ou “Impossible de se connecter à la base de données” accompagné de “(en utilisant le mot de passe : YES)” à la fin, la première chose à faire est de vérifier les détails de la base de données. Il peut s’agir d’une erreur de frappe ou d’une partie manquante.
Impossible de se connecter au serveur MySQL
Si vous obtenez “Can’t connect to MySQL server on ‘server’ (110)” dans MySQLi, cela signifie que le script n’a pas reçu de réponse d’un serveur. Cela se produit lorsque nous définissons “server” au lieu de “localhost” comme $servername, et que ce nom n’est pas reconnu.
Le message d’erreur dans PDO ressemblera à “Connection failed : SQLSTATE[Hy000] [2002]” suivi d’autres détails indiquant que l’hôte My SQL n’a pas été trouvé. Mais la façon de résoudre ce problème est la même que celle décrite ci-dessus.
Et bien sûr, il est toujours important de se rappeler une règle d’or pour dépanner une erreur : vérifier le journal des erreurs de votre site.
Le journal se trouve dans le même dossier que celui où le script s’exécute. Par exemple, si nous exécutons un script dans public_html, nous trouverons le error_log dans le même dossier.
Conclusion
Dans ce tutoriel, nous avons appris les bases de la connexion d’un script PHP à une base de données MySQL en utilisant MySQLi et PHP Data Objects (PDO).
Nous espérons que ce guide a été utile à ceux qui débutent dans le développement web. Après tout, la connexion à une base de données est la première étape, la plus importante, lorsque l’on travaille avec des scripts et des configurations plus avancés.
Faites-nous savoir dans les commentaires ci-dessous si vous rencontrez un problème en suivant ce guide.