Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment connecter PHP à MySQL

Voulez-vous apprendre à connecter PHP à MySQL et à effectuer différents types d'opérations de base de données ? Dans cet article, nous ferons exactement cela :nous discuterons de la connectivité de la base de données MySQL en PHP.

PHP propose différentes manières de connecter PHP à un serveur de base de données MySQL. Jusqu'à PHP 5.5, l'un des moyens les plus populaires était l'extension MySQL - elle fournissait un moyen "procédural" de se connecter au serveur MySQL. Cependant, cette extension est obsolète depuis PHP 5.5, nous n'allons donc pas en discuter.

Actuellement, vos deux choix sont PDO et MySQLi.

L'extension PDO (PHP Data Objects) prend en charge différents types de serveurs de base de données sous-jacents avec le serveur MySQL. Et donc, il est portable au cas où vous décideriez d'échanger le serveur de base de données sous-jacent à tout moment dans le futur.

D'autre part, l'extension MySQLi est spécifique au serveur MySQL et offre une meilleure vitesse et de meilleures performances. L'extension MySQLi peut également être un peu plus simple à comprendre au début, car elle vous permet d'écrire directement des requêtes SQL. Si vous avez déjà travaillé avec des bases de données SQL, cela vous sera très familier. L'extension PDO, cependant, crée un mappage puissant de la base de données SQL à votre code PHP et vous permet d'effectuer de nombreuses opérations de base de données sans avoir besoin de connaître les détails de SQL ou de la base de données. À long terme et pour les projets plus importants, cela peut économiser beaucoup d'efforts de codage et de débogage.

Dans cet article, j'utiliserai l'extension MySQLi. Mais vous pouvez en savoir plus sur l'extension PDO ici sur Envato Tuts+.

Nous aborderons les sujets suivants dans cet article :

  • créer une connexion MySQL
  • insérer, mettre à jour et supprimer des enregistrements
  • récupérer des enregistrements

Meilleurs scripts de base de données PHP sur CodeCanyon

Dans cet article, je vais vous montrer comment établir une connexion sans système d'exploitation à une base de données MySQL à partir de PHP. Il s'agit d'une compétence importante à posséder, mais si vous souhaitez gagner du temps sur votre prochain projet, vous souhaiterez peut-être passer à un script de base de données professionnel. Cela vous fera gagner du temps et facilitera votre travail.

Explorez les scripts de base de données PHP les meilleurs et les plus utiles jamais créés sur CodeCanyon. Avec un paiement unique à faible coût, vous pouvez acheter ces thèmes WordPress de haute qualité et améliorer l'expérience de votre site Web pour vous et vos visiteurs.

Voici quelques-uns des meilleurs scripts de base de données PHP disponibles sur CodeCanyon pour 2020.

  • PHPComparaison des couches d'abstraction de base de données PHP et des plugins CRUD Sajal Soni

Créer une connexion MySQL

Dans cette section, je vais vous montrer comment vous pouvez vous connecter au serveur MySQL à partir de votre script PHP et créer un objet de connexion. Plus tard, cet objet de connexion sera utilisé pour exécuter des requêtes, récupérer la sortie et manipuler les enregistrements de la base de données. Comme nous en avons discuté précédemment, nous allons utiliser l'extension PHP MySQLi pour cet article.

L'extension MySQLi fournit deux manières différentes d'effectuer des opérations de base de données. Vous pouvez l'utiliser soit de manière orientée objet, soit de manière procédurale, mais comme ce tutoriel est destiné aux débutants, je m'en tiendrai à la manière procédurale. Si vous souhaitez voir des extraits orientés objet, vous pouvez me contacter dans la section des commentaires ci-dessous et je serai heureux de vous les fournir.

Pour commencer, allez-y et créez le db_connect.php fichier sous la racine de votre document avec le contenu suivant.

<?php
$mysqli_link = mysqli_connect("{HOST_NAME}", "{DATABASE_USERNAME}", "{DATABASE_PASSWORD}", "{DATABASE_NAME}");

if (mysqli_connect_errno()) 
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

Notez que j'ai utilisé des espaces réservés dans le mysqli_connect fonction—vous devez les remplacer par des valeurs réelles.

Passons en revue chaque espace réservé pour voir ce qu'il représente.

  • {HOST_NAME} :Cela représente le nom d'hôte ou l'adresse IP de votre serveur MySQL. Si vous avez installé le serveur MySQL sur le même système avec PHP, vous devez utiliser localhost ou 127.0.0.1 . D'autre part, si vous utilisez un serveur MySQL hébergé en externe, vous pouvez utiliser le nom d'hôte ou l'adresse IP correspondant.
  • {DATABASE_USERNAME} :Cela représente le nom d'utilisateur de votre utilisateur MySQL. Il s'agit essentiellement du nom d'utilisateur que vous utilisez pour vous connecter à votre serveur MySQL.
  • {DATABASE_PASSWORD} :Ceci représente le mot de passe de votre utilisateur MySQL. Encore une fois, il s'agit du mot de passe que vous utilisez pour vous connecter à votre serveur MySQL avec le nom d'utilisateur MySQL.
  • {DATABASE_NAME} :Il s'agit du nom de la base de données MySQL à laquelle vous souhaitez vous connecter. Une fois la connexion créée, vous interrogerez cette base de données pour d'autres opérations.

Allez-y et remplacez ces espaces réservés par des valeurs réelles. Dans mon cas, j'ai installé le serveur MySQL localement et j'ai un utilisateur MySQL avec tutsplus-demo-user comme nom d'utilisateur MySQL et tutsplus-demo-password comme mot de passe MySQL. Et avec cela, l'exemple ci-dessus ressemble à ceci :

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno()) 
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

Si vous exécutez cet exemple, il doit créer un lien de connexion à la base de données et l'affecter au $mysqli_link variable, que nous utiliserons plus tard pour effectuer différents types d'opérations de base de données.

D'autre part, s'il y a un problème lors de la configuration de la connexion, le  mysqli_connect_errno renverra un code d'erreur, et le mysqli_connect_error La fonction affichera l'erreur réelle. Dans l'exemple ci-dessus, nous l'avons utilisé à des fins de débogage.

Maintenant, nous avons une connexion réussie au serveur MySQL, et nous verrons comment l'utiliser pour effectuer différents types de requêtes à partir de la section suivante.

Comment insérer des enregistrements

Dans la section précédente, nous avons expliqué comment utiliser le mysqli_connect fonction pour configurer une connexion de base de données avec le serveur MySQL. Dans cette section, nous allons continuer et discuter de la façon d'utiliser l'objet de connexion pour effectuer INSERT requêtes.

Si vous souhaitez suivre les exemples présentés dans cet article, vous devrez créer la table MySQL suivante dans votre base de données. C'est le tableau que nous allons utiliser dans tous les exemples à partir de maintenant.

CREATE TABLE `students` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `last_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Allez-y et créez la table MySQL ci-dessus en utilisant le logiciel phpMyAdmin ou l'outil de ligne de commande.

Ensuite, créons le db_insert.php fichier avec le contenu suivant. N'oubliez pas de remplacer les paramètres de connexion par les vôtres.

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$insert_query = "INSERT INTO students(`first_name`,`last_name`,`email`)
VALUES ('". mysqli_real_escape_string($mysqli_link, 'John') ."','". mysqli_real_escape_string($mysqli_link, 'Wood') ."','". mysqli_real_escape_string($mysqli_link, '[email protected]') ."')";
 
// run the insert query
If (mysqli_query($mysqli_link, $insert_query)) {
    echo 'Record inserted successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Tout d'abord, nous configurons une connexion à la base de données en utilisant le mysqli_connect fonction, comme nous l'avons vu précédemment. Après cela, nous avons préparé la requête d'insertion que nous allons exécuter plus tard. Il est important de noter que nous avons utilisé le mysqli_real_escape_string pour échapper les valeurs de chaîne que nous allons utiliser dans la requête d'insertion. Plus précisément, vous devez utiliser cette fonction lorsque vous traitez des valeurs soumises via $_POST variables pour éviter l'injection SQL.

Enfin, nous avons utilisé le mysqli_query fonction, qui prend deux arguments. Le premier argument est le lien de connexion actif où la requête sera exécutée. Et le deuxième argument est la requête MySQL que nous voulons exécuter. Le mysqli_query la fonction renvoie TRUE si la requête a été exécutée avec succès.

Enfin, nous avons utilisé le mysqli_close fonction pour fermer la connexion active à la base de données. Il est recommandé de fermer la connexion à la base de données une fois que vous avez terminé les opérations de base de données.

Allez-y et exécutez le script, et cela devrait insérer un enregistrement dans le students tableau !

Comment mettre à jour les enregistrements

La mise à jour des enregistrements d'une base de données à partir du script PHP est très similaire à l'opération d'insertion; la seule différence est que la requête sera la requête de mise à jour au lieu de la requête d'insertion.

Révisons l'exemple ci-dessus et mettons à jour le first_name champ, comme illustré dans l'exemple suivant.

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$update_query = "UPDATE students SET `first_name` = '". mysqli_real_escape_string($mysqli_link,'Johnny') ."' WHERE `email` = '[email protected]'";
 
// run the update query
If (mysqli_query($mysqli_link, $update_query)) {
    echo 'Record updated successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Allez-y et exécutez le script, et cela devrait mettre à jour l'enregistrement dans le students table.

Comment sélectionner des enregistrements

Dans les sections précédentes, nous avons expliqué comment vous pouvez insérer et mettre à jour des enregistrements dans une base de données à partir du script PHP. Dans cette section, nous allons explorer comment vous pouvez récupérer des enregistrements d'une base de données en utilisant les différents types de fonctions MySQLi.

Tout d'abord, vous devez utiliser le mysqli_query fonction pour exécuter la requête de sélection. Lors de l'exécution réussie de la requête de sélection, le mysqli_query La fonction renvoie l'objet de résultat mysqli, que nous pourrions utiliser pour parcourir les enregistrements renvoyés par la requête select. Lorsqu'il s'agit de récupérer et d'itérer sur les enregistrements de l'objet de résultat MySQLi, différentes fonctions sont disponibles.

  • mysqli_fetch_all :Il vous permet de récupérer toutes les lignes de résultats en une seule fois. Vous pouvez également spécifier si vous souhaitez obtenir des résultats sous forme de tableau associatif, de tableau numérique ou les deux.
  • mysqli_fetch_array :Il permet de récupérer une ligne à la fois. Et ainsi, vous devrez utiliser la boucle while pour parcourir tous les enregistrements. Encore une fois, vous pouvez spécifier si vous voulez une ligne de résultat sous forme de tableau associatif, de tableau numérique ou les deux.
  • mysqli_fetch_assoc  :Il récupère une ligne de résultat une par une en tant que tableau associé.
  • mysqli_fetch_object  :Il récupère une ligne de résultat une par une en tant qu'objet.

Examinons l'exemple suivant pour comprendre comment cela fonctionne :

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$select_query = "SELECT * FROM students LIMIT 10";
$result = mysqli_query($mysqli_link, $select_query);

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo "First Name:" . $row['first_name'] . "<br/>";
    echo "Last Name:" . $row['last_name'] . "<br/>";
    echo "Email:" . $row['email'] . "<br/>";
    echo "<br/>";
}

// close the db connection
mysqli_close($mysqli_link);
?>

Comme vous pouvez le voir, nous avons utilisé le mysqli_fetch_array fonction avec le MYSQLI_ASSOC option comme deuxième argument. Et ainsi, il renvoie la ligne de résultat en tant que tableau associé. Si vous utilisez le MYSQLI_NUM option, vous y accéderiez comme $row[0] , $row[1] et $row[2] dans l'exemple ci-dessus.

Par contre, si vous utilisez le mysqli_fetch_object fonction dans l'exemple ci-dessus, vous pouvez accéder aux valeurs comme indiqué dans l'extrait de code suivant. Par souci de concision, je n'inclurai que l'extrait de boucle while.

…
…
while ($row = mysqli_fetch_object($result)) {
    echo "First Name:" . $row->first_name . "<br/>";
    echo "Last Name:" . $row->last_name . "<br/>";
    echo "Email:" . $row->email . "<br/>";
    echo "<br/>";
}
...
...

Ainsi, de cette manière, vous pouvez récupérer et afficher les enregistrements de la base de données MySQLi.

Comment supprimer des enregistrements

Dans cette section, nous verrons comment exécuter des requêtes de suppression à partir du script PHP. La suppression d'enregistrements d'une base de données est une opération assez simple puisqu'il vous suffit de préparer la requête de suppression et de l'exécuter avec le mysqli_query fonction.

Passons en revue l'exemple suivant pour voir comment cela fonctionne.

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$delete_query = "DELETE FROM students WHERE `email` = '[email protected]'";
 
// run the update query
If (mysqli_query($mysqli_link, $delete_query)) {
    echo 'Record deleted successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Comme vous pouvez le voir, tout est identique à ce que nous avons déjà vu avec les exemples d'insertion et de mise à jour, sauf que la requête est une requête de suppression dans ce cas.

C'est ainsi que vous pouvez effectuer différents types d'opérations de base de données à partir du script PHP.

Et avec cela, nous avons atteint la fin de ce tutoriel. Ce dont nous avons discuté jusqu'à présent aujourd'hui devrait vous aider à renforcer les concepts de connectivité des bases de données, en particulier comment connecter PHP à MySQL et effectuer différents types d'opérations.