Requêtes préparées

Fermé
lynda789456 Messages postés 225 Date d'inscription mercredi 24 février 2016 Statut Membre Dernière intervention 22 novembre 2016 - 14 mai 2016 à 20:01
 Utilisateur anonyme - 15 mai 2016 à 17:00
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

Utilisateur anonyme
14 mai 2016 à 20:12
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
lynda789456 Messages postés 225 Date d'inscription mercredi 24 février 2016 Statut Membre Dernière intervention 22 novembre 2016
14 mai 2016 à 20:23
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
Utilisateur anonyme
14 mai 2016 à 20:31
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
lynda789456 Messages postés 225 Date d'inscription mercredi 24 février 2016 Statut Membre Dernière intervention 22 novembre 2016
14 mai 2016 à 21:04
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
Utilisateur anonyme
14 mai 2016 à 21:25
Tu remplaces "?" et "?" par le contenu de $file_name et le contenu de $file_dest
0
lynda789456 Messages postés 225 Date d'inscription mercredi 24 février 2016 Statut Membre Dernière intervention 22 novembre 2016
Modifié par lynda789456 le 15/05/2016 à 00:36
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