Requête de modification

Résolu
barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   -  
barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite modifier des données dans une table mais cela ne fonctionne pas si je met une variable à la place d'une id:

(alors que si je mets WHERE id = \'1\' par exemple ça fonctionne)

$nom = ( isset($_POST['nom']) )? $_POST['nom'] : ''; 
$url = ( isset($_POST['url']) )? $_POST['url'] : ''; 
$dateCreation = ( isset($_POST['dateCreation']) )? $_POST['dateCreation'] : ''; 
$idTypeCms = ( isset($_POST['idTypeCms']) )? $_POST['idTypeCms'] : ''; 
$dateMiseEnLigne = ( isset($_POST['dateMiseEnLigne']) )? $_POST['dateMiseEnLigne'] : ''; 
$dateDerniereModif = ( isset($_POST['dateDerniereModif']) )? $_POST['dateDerniereModif'] : '';
$nomCms = ( isset($_POST['idTypeCms']) )? $_POST['idTypeCms'] : '';
$id = ( isset($_POST['id']) )? $_POST['id'] : '';

if (isset($_POST['envoyer'])) {
$req = $bdd->prepare('UPDATE sites SET nom = :nom,  url = :url, dateCreation = :dateCreation, idTypeCms = :idTypeCms, dateMiseEnLigne = :dateMiseEnLigne, dateDerniereModif = :dateDerniereModif WHERE id = '.$id.''); 
$req->execute(array(
 'nom' => $nom,
 'url' => $url,
 'dateCreation' => datefrus($dateCreation),
 'idTypeCms' => $idTypeCms,
 'dateMiseEnLigne' => datefrus($dateMiseEnLigne),
 'dateDerniereModif' => datefrus($dateDerniereModif)
 )); 


3 réponses

  1. ElementW Messages postés 5690 Statut Contributeur 1 293
     
    'lut, ajoutes-donc un paramètre à ta requête préparée, plutôt que de mettre une variable qui ouvre la voie aux injections SQL et a l'enfer des types de variable...
    $req = $bdd->prepare('UPDATE sites SET nom = :nom,  url = :url, dateCreation = :dateCreation, idTypeCms = :idTypeCms, dateMiseEnLigne = :dateMiseEnLigne, dateDerniereModif = :dateDerniereModif WHERE id = :id'); 
    $req->execute(array(
    	'id' => $id,
    	'nom' => $nom,
    	'url' => $url,
    	'dateCreation' => datefrus($dateCreation),
    	'idTypeCms' => $idTypeCms,
    	'dateMiseEnLigne' => datefrus($dateMiseEnLigne),
    	'dateDerniereModif' => datefrus($dateDerniereModif)
    	));
    1
  2. barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   113
     
    Oui mais ça fonctionne toujours pas avec la lême erreur:

    Notice: Undefined variable: id in C:\wamp\www\tba\modification.php on line 18 (qui est la ligne 3 ici)

    $req = $bdd->prepare('UPDATE sites SET nom = :nom,  url = :url, dateCreation = :dateCreation, idTypeCms = :idTypeCms, dateMiseEnLigne = :dateMiseEnLigne, dateDerniereModif = :dateDerniereModif WHERE id = :id'); 
    $req->execute(array(
        'id' => $id,
    	'nom' => $nom,
    	'url' => $url,
    	'dateCreation' => datefrus($dateCreation),
    	'idTypeCms' => $idTypeCms,
    	'dateMiseEnLigne' => datefrus($dateMiseEnLigne),
    	'dateDerniereModif' => datefrus($dateDerniereModif)
    	)); 
    0
  3. barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   113
     
    Je ne l'avais tout simplement pas déclarée.
    0