GNU/Linux >> Tutoriels Linux >  >> Linux

3 méthodes pour se connecter à MySQL à partir de PHP en utilisant un exemple de code

Pour tirer le meilleur parti de votre base de données MySQL, il est important de comprendre comment se connecter de votre programme PHP personnalisé à la base de données MySQL.

Ce didacticiel explique les trois méthodes suivantes ainsi qu'un exemple de programme PHP approprié, qui expliquera comment se connecter de votre base de données PHP à MySQL.

  • Se connecter à l'aide de l'extension mysqli (recommandé)
  • Se connecter à l'aide de PDO (recommandé)
  • Se connecter à l'aide des anciennes fonctions mysql_ traditionnelles (obsolète)

Pour cela, vous devez installer le package php-mysql.

Sur une distribution basée sur RedHat, y compris CentOS, utilisez yum pour installer php-mysql comme indiqué ci-dessous.

yum install php-mysql

Selon votre système, ce qui précède installera ou mettra à jour les dépendances suivantes :
php
php-cli
php-common
php-pdo
php-pgsql

Une fois installé, la page phpinfo affichera le module mysql comme indiqué ci-dessous :

Pour tous les exemples ci-dessous, nous allons nous connecter à une base de données MySQL qui existe déjà. Si vous débutez avec MySQL, voici un bon point de départ :MySQL Beginners Guide

Remarque :Tout ce qui est expliqué ici fonctionnera également avec MariaDB, car c'est la même chose que MySQL.

1. Se connecter à partir de PHP à l'aide de l'extension mysqli

mysqli signifie MySQL amélioré.

Veuillez noter que sur la plupart des distributions (par exemple :CentOS), php-mysqli fait déjà partie du package php-mysql. Ainsi, vous n'avez pas besoin de rechercher et de rechercher le package php-mysqli. Tout ce que vous avez à faire est d'installer le package php-mysql pour que l'extension mysqli fonctionne sur votre système.

Créez le fichier mysqli.php suivant sous Apache DocumentRoot :

<?php
  $conn = new mysqli("localhost", "root", "mySecretDBpass", "thegeekstuff");
  
  if ($conn->connect_error) {
    die("ERROR: Unable to connect: " . $conn->connect_error);
  } 

  echo 'Connected to the database.<br>';

  $result = $conn->query("SELECT name FROM employee");

  echo "Number of rows: $result->num_rows";

  $result->close();

  $conn->close();
?>

Dans ce qui précède :

  • mysqli - Cette fonction initiera une nouvelle connexion en utilisant l'extension mysqli. Cette fonction prendra ces quatre arguments
    1. nom d'hôte sur lequel la base de données MySQL est en cours d'exécution
    2. Nom d'utilisateur MySQL pour se connecter
    3. Mot de passe pour l'utilisateur mysql
    4. Base de données MySQL à connecter.
  • fonction de requête – Utilisez-la pour spécifier votre requête MySQL. Dans cet exemple, nous sélectionnons la colonne de nom de la base de données des employés.
  • Enfin, nous affichons le nombre de lignes sélectionnées à l'aide de la variable num_rows dans le résultat. Nous fermons également les variables de résultat et de connexion, comme indiqué ci-dessus.

Lorsque vous appelez mysqli.php ci-dessus depuis votre navigateur, vous verrez la sortie suivante, qui indique que PHP a pu se connecter à la base de données MySQL et récupérer des données.

Connected to the database.
Number of rows: 6

Remarque :Si vous essayez de vous connecter à une base de données MySQL distante, vous devrez peut-être le faire pour éviter le message d'erreur de l'hôte non autorisé :Comment autoriser le client MySQL à se connecter au serveur MySQL distant

2. Se connecter à partir de l'extension PHP MySQL PDO

PDO signifie PHP Data Objects.

Le lecteur PDO_MYSQL implémente l'interface PDO fournie par PHP pour se connecter de votre programme PHP à la base de données MySQL.

Sur la plupart des distributions Linux (par exemple :CentOS et RedHat), le package php-pdo fait déjà partie du package php-mysql. Ainsi, vous n'avez pas besoin de rechercher et de rechercher le package php-pdo. Tout ce que vous avez à faire est d'installer le package php-mysql pour que l'extension PHP PDO_MYSQL fonctionne sur votre système.

Créez le fichier mysql-pdo.php suivant sous votre Apache DocumentRoot :

<?php
  try {
    $conn = new PDO("mysql:host=localhost;dbname=thegeekstuff", "root", "mySecretDBpass");

    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo 'Connected to the database.<br>';

    $sql = 'SELECT name FROM employee';
    
    print "Employee Name:<br>";
    foreach ($conn->query($sql) as $row) {
        print $row['name'] . "<br>";
    }
    $conn = null;

  }
  catch(PDOException $err) {
    echo "ERROR: Unable to connect: " . $err->getMessage();
  }
?>

Dans ce qui précède :

  • new PDO – Cela créera un nouvel objet PDO qui prendra les trois arguments suivants :
    1. chaîne de connexion mysql :ce sera au format "mysql:host=$hostname;dbname=$dbname". Dans l'exemple ci-dessus, la base de données s'exécute sur localhost et nous nous connectons à la base de données geekstuff.
    2. Nom d'utilisateur MySQL pour se connecter
    3. Mot de passe pour l'utilisateur mysql
  • Variable $sql – Créez la requête sql que vous souhaitez exécuter. Dans cet exemple, nous sélectionnons la colonne de nom dans la table des employés.
  • query($sql) – Ici, nous exécutons la requête sql que nous venons de créer.
  • foreach - Ici, nous parcourons la sortie de la commande de requête ci-dessus et la stockons dans la variable $row, puis nous l'affichons à l'aide de la commande print.
  • Dans MySQL PDO, pour fermer la connexion, définissez simplement la variable $conn sur une valeur nulle.

Lorsque vous appelez mysqli.php ci-dessus depuis votre navigateur, vous verrez la sortie suivante, qui indique que PHP a pu se connecter à la base de données MySQL et récupérer des données.

Connected to the database.
Employee Name:
Thomas
Jason
Mayla
Nisha
Randy
Ritu

3. Se connecter à partir de PHP à l'aide des anciennes fonctions mysql_ (obsolète)

N'utilisez cette méthode que si vous utilisez une ancienne version de PHP et que vous ne pouvez pas la mettre à niveau vers la nouvelle version pour une raison quelconque.

Il est recommandé d'utiliser la méthode n ° 2 et la méthode n ° 3 indiquées ci-dessus au lieu de cette méthode. J'ai inclus cette méthode uniquement à titre de référence, et non comme une recommandation à utiliser.

Cette extension particulière a été dépréciée à partir de la version PHP 5.5. Mais à partir de la version PHP 7.0, cela ne fonctionnera même pas, car il a été supprimé.

À partir de la version PHP 5.5, lorsque vous utilisez ces fonctions, cela génère une erreur E_DEPRECATED.

Créez le fichier mysql-legacy.php suivant sous Apache DocumentRoot :

<?php
$conn = mysql_connect('localhost', 'root', 'mySecretDBpass');
mysql_select_db("thegeekstuff");
if (!$conn) {
die('ERROR: Unable to connect: ' . mysql_error());
}

echo 'Connected to the database.<br>';

$result = mysql_query('SELECT name FROM employee');

$row = mysql_fetch_row($result);
echo "Employee 1: ", $row[0], "<br>\n";

mysql_close($conn);
?>

Dans ce qui précède :

  • la fonction mysql_connect prend trois arguments :1) le nom d'hôte sur lequel la base de données MySQL est exécutée 2) le nom d'utilisateur MySQL pour se connecter 3) le mot de passe de l'utilisateur mysql. Ici, il se connecte à la base de données MySQL qui s'exécute sur le serveur local en utilisant le nom d'utilisateur root et son mot de passe.
  • Fonction mysql_select_db - Comme son nom l'indique, cela sélectionnera la base de données à laquelle vous souhaitez vous connecter. C'est l'équivalent de la commande "use". Dans cet exemple, nous nous connectons à la base de données thegeekstuff.
  • Fonction mysql_query – Utilisez-la pour spécifier votre requête MySQL. Dans cet exemple, nous sélectionnons la colonne de nom de la base de données des employés.
  • mysql_fetch_row - Utilisez cette fonction pour récupérer les lignes de la requête SQL que nous venons de créer.
  • Fermez enfin la connexion à l'aide de la commande mysql_close comme indiqué ci-dessus.

Lorsque vous appelez mysql-legacy.php ci-dessus depuis votre navigateur, vous verrez la sortie suivante, qui indique que PHP a pu se connecter à la base de données MySQL et récupérer des données.

Connected to the database.
Employee 1: Thomas

Linux
  1. Comment se connecter à distance à une base de données MySQL à partir d'un ordinateur

  2. Pourquoi utiliser Symfony ? 6 arguments pour utiliser Symfony PHP Framework, du point de vue d'un développeur

  3. Méthodes de connexion MySQL

  4. Exemple d'utilisation de getnstimeofday dans le noyau Linux

  5. Comment puis-je exécuter du code PHP à partir de la ligne de commande ?

Comment se connecter à MySQL en utilisant PHP

Comment se connecter à MySQL à partir de la ligne de commande Windows

Comment insérer des données dans la base de données MySQL à l'aide de PHP dans XAMPP

Créer une base de données et une table MySQL à l'aide de PHP dans XAMPP

Comment déployer une application PHP avec Nginx et MySQL à l'aide de Docker et Docker Compose

Comment se connecter à MySQL en utilisant PHP