8768 sujets

Développement web côté serveur, CMS

Bonjour,
j'essai de faire un UPDATE sur une table dans une boucle while


$res = "SELECT * FROM maTable";
$req = $PDO->prepare($res);
$req->execute();
while($data_row = $req->fetch()){
   $id = $data_row['id'];
   $prenom = $data_row['prenom'];
   $unNom = $data_row['unNom'];
[b]   $PDO->query("UPDATE maTable2 SET nom= '$unNom', prenom= '$unPrenom' WHERE id = '$id' ");[/b]
}


j'ai ce message comme réponse Smiley decu
Warning: PDO::query(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;


j'ai essayé les requête préparées, mais même chose
le but n'est pas de transférer le contenu de maTable dans maTable2, c'est un exemple illustratif
merci d'avance
Modifié par smith (08 Jul 2015 - 09:52)
Syntax error !

$PDO->query("UPDATE maTable2 SET nom='".$unNom."', prenom= '".$unPrenom."' WHERE id = '".$id."'  ");

Modifié par JENCAL (07 Jul 2015 - 14:55)
merci pour ta réponse, j'ai essayé mais ça na rien donné, toujours syntax error, pourtant elle est toute simple comme requête
Débuggage classique :

$rq="UPDATE maTable2 SET nom='".$unNom."', prenom= '".$unPrenom."' WHERE id = '".$id."'  ";
var_dump($rq);
/*$PDO->query("UPDATE maTable2 SET nom= '$unNom', prenom= '$unPrenom' WHERE id = '$id' ");*/


Et tu relis bien ta requête telle qu'afficher par ton site en contexte, voire tu la passes sous PHPmyAdmin. Parce que telle qu'elle, si tes variables sont bonnes, y a aucun soucis. Par contre un $id manquant, ou un $unNom (ou prénom) contenant une apostrophe, ça peut faire planter...
Modifié par Lothindil (07 Jul 2015 - 19:02)
bonjour,

si j'ai bien lu et que je dis pas de bétises, tu initialises une variable $prenom et dans la requête tu utilises $unPrenom

++
sanchodellavega a écrit :
bonjour,

si j'ai bien lu et que je dis pas de bétises, tu initialises une variable $prenom et dans la requête tu utilises $unPrenom

++


désolé pour l'erreur mais comme je l'ai dis c'était juste un exemple
je comprenais pas même en remplaçant les variables par des caractères ça fonctionnait pas
24h après j'ai finalement trouvé, le nom de mon champs c'était un mot réservé Smiley fache
merci pour le coup de main ; )
Modifié par smith (08 Jul 2015 - 13:05)