MySQL - Insérer une requête

Pour insérer des données dans une table MySQL, vous devez utiliser le SQL INSERT INTOcommander. Vous pouvez insérer des données dans la table MySQL en utilisant l'invite mysql> ou en utilisant n'importe quel script comme PHP.

Syntaxe

Voici une syntaxe SQL générique de la commande INSERT INTO pour insérer des données dans la table MySQL -

INSERT INTO table_name ( field1, field2,...fieldN )
   VALUES
   ( value1, value2,...valueN );

Pour insérer des types de données chaîne, il est nécessaire de conserver toutes les valeurs entre guillemets doubles ou simples. Par exemple"value".

Insertion de données à partir de l'invite de commande

Pour insérer des données à partir de l'invite de commande, nous utiliserons la commande SQL INSERT INTO pour insérer des données dans la table MySQL tutorials_tbl.

Exemple

L'exemple suivant créera 3 enregistrements dans tutorials_tbl table -

[email protected]# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed

mysql> INSERT INTO tutorials_tbl 
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("Learn PHP", "John Poul", NOW());
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO tutorials_tbl
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("Learn MySQL", "Abdul S", NOW());
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO tutorials_tbl
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("JAVA Tutorial", "Sanjay", '2007-05-06');
Query OK, 1 row affected (0.01 sec)
mysql>

NOTE- Veuillez noter que tous les flèches (->) ne font pas partie de la commande SQL. Ils indiquent une nouvelle ligne et ils sont créés automatiquement par l'invite MySQL en appuyant sur la touche Entrée sans donner de point-virgule à la fin de chaque ligne de la commande.

Dans l'exemple ci-dessus, nous n'avons pas fourni de tutorial_id car au moment de la création de la table, nous avions donné l'option AUTO_INCREMENT pour ce champ. MySQL s'occupe donc d'insérer ces identifiants automatiquement. Ici,NOW() est une fonction MySQL, qui renvoie la date et l'heure actuelles.

Insertion de données à l'aide d'un script PHP

Vous pouvez utiliser la même commande SQL INSERT INTO dans la fonction PHP mysql_query() pour insérer des données dans une table MySQL.

Exemple

Cet exemple prendra trois paramètres de l'utilisateur et les insérera dans la table MySQL -

<html>

   <head>
      <title>Add New Record in MySQL Database</title>
   </head>

   <body>
      <?php
         if(isset($_POST['add'])) {
            $dbhost = 'localhost:3036';
            $dbuser = 'root';
            $dbpass = 'rootpassword';
            $conn = mysql_connect($dbhost, $dbuser, $dbpass);
         
            if(! $conn ) {
               die('Could not connect: ' . mysql_error());
            }

            if(! get_magic_quotes_gpc() ) {
               $tutorial_title = addslashes ($_POST['tutorial_title']);
               $tutorial_author = addslashes ($_POST['tutorial_author']);
            } else {
               $tutorial_title = $_POST['tutorial_title'];
               $tutorial_author = $_POST['tutorial_author'];
            }

            $submission_date = $_POST['submission_date'];
   
            $sql = "INSERT INTO tutorials_tbl ".
               "(tutorial_title,tutorial_author, submission_date) "."VALUES ".
               "('$tutorial_title','$tutorial_author','$submission_date')";
               mysql_select_db('TUTORIALS');
            $retval = mysql_query( $sql, $conn );
         
            if(! $retval ) {
               die('Could not enter data: ' . mysql_error());
            }
         
            echo "Entered data successfully\n";
            mysql_close($conn);
         } else {
      ?>
   
      <form method = "post" action = "<?php $_PHP_SELF ?>">
         <table width = "600" border = "0" cellspacing = "1" cellpadding = "2">
            <tr>
               <td width = "250">Tutorial Title</td>
               <td>
                  <input name = "tutorial_title" type = "text" id = "tutorial_title">
               </td>
            </tr>
         
            <tr>
               <td width = "250">Tutorial Author</td>
               <td>
                  <input name = "tutorial_author" type = "text" id = "tutorial_author">
               </td>
            </tr>
         
            <tr>
               <td width = "250">Submission Date [   yyyy-mm-dd ]</td>
               <td>
                  <input name = "submission_date" type = "text" id = "submission_date">
               </td>
            </tr>
      
            <tr>
               <td width = "250"> </td>
               <td> </td>
            </tr>
         
            <tr>
               <td width = "250"> </td>
               <td>
                  <input name = "add" type = "submit" id = "add"  value = "Add Tutorial">
               </td>
            </tr>
         </table>
      </form>
   <?php
      }
   ?>
   </body>
</html>

Lors d'une insertion de données, il est préférable d'utiliser la fonction get_magic_quotes_gpc()pour vérifier si la configuration actuelle pour le devis magique est définie ou non. Si cette fonction renvoie false, utilisez la fonctionaddslashes() pour ajouter des barres obliques avant les guillemets.

Vous pouvez effectuer de nombreuses validations pour vérifier si les données saisies sont correctes ou non et prendre les mesures appropriées.