Requêtes préparées

lynda789456 Messages postés 245 Statut Membre -  
 Utilisateur anonyme -
Bonsoir ,svp expliquez moi qu'est ce qu'une requête préparée et quelle est la différence entre cette dernière et une requéte normal, voici les deux lignes du code:
$req = $db->prepare('INSERT INTO files(name, file_url) VALUES(?,?)');
    $req->execute(array($file_name, $file_dest));

SVP pourquoi on met des "?" à l'intérieur de
values (?,?) 
svp !!!!!!
J'attend vos réponses svp :)
Cordialement !

1 réponse

  1. Utilisateur anonyme
     
    les "?" seront remplacés par les éléments du tableau passé en paramètre de execute()

    Ça sert entre autre à gérer les types automatiquement les types et éviter des problèmes de sécurité (injection sql)
    0
    1. lynda789456 Messages postés 245 Statut Membre
       
      Donc les "?" seront remplacés par des champs entrés c ça ?
      J'ai pas compris comment elle gère les types ?et pourquoi c lié à la sécurité ??
      Merci beaucoup monsieur :)
      0
    2. Utilisateur anonyme
       
      Donc les "?" seront remplacés par des champs entrés c ça ? 


      Par le tableau que tu fournis à la fonction execute()

      J'ai pas compris comment elle gère les types ?


      Moi non plus, mais ça m'empêche pas de dormir

      et pourquoi c lié à la sécurité ?


      https://fr.wikipedia.org/wiki/Injection_SQL
      0
    3. lynda789456 Messages postés 245 Statut Membre
       
      par exemple dans mon cas c'est:
      $req->execute(array($file_name, $file_dest));

      Il execute quoi dans ce cas SVP??
      Merci beaucoup pour ton aide c gentil :)
      0
    4. Utilisateur anonyme
       
      Tu remplaces "?" et "?" par le contenu de $file_name et le contenu de $file_dest
      0
    5. lynda789456 Messages postés 245 Statut Membre
       
      J'ai pigé, merci monsieur :)
      Je peux te poser une autre question stp lol:
      Voici mon code php, tu m'expliquer brièvement via des commentaires les lignes de ce code S'il te plait :
           <?php
      require 'includes/connect_db.php'; 
      
       if(!empty($_FILES)){ 
          $file_name = $_FILES['fichier']['name']; 
          $file_extension = strrchr($file_name,"."); 
          
          $file_tmp_name = $_FILES['fichier']['tmp_name'];
          $file_dest = 'files/'.$file_name;
          $extensions_autorisees = array('.xlsx', '.XLSX', '.xlsm', '.XLSM');
          
          if(in_array($file_extension, $extensions_autorisees)){
            if ($file_name != "FAM.xlsm") { echo '<span style="color:#003366;">Renommez votre fichier "FAM" svp !</span>'; }
            else if (move_uploaded_file($file_tmp_name, $file_dest)){
             $req = $db->prepare('INSERT INTO files(name, file_url) VALUES(?,?)');
      
            echo '<span style="color:#003366;">Votre fichier a été envoyé avec succès</span>';
         } else{
           echo '<span style="color:#003366;">Une erreur est survenue</span>';
           }
          } else {
           echo '<span style="color:#003366;">Seuls les fichiers modules sont autorisés</span>';//sinon retourne moi "seuls les fichier excel sont autorisées"
          }
       }
       
      ?>

      S'il te plait :(
      0