Bonjour,

Je veux faire un update en pdo avec une requête préparée et utilise le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
    session_start();
 
	$_SESSION["idItem"]= "10000";
	if(isset($_SESSION["idItem"]))
		{
			include "connexion.php";
			$SQL = "SELECT * FROM `hitsparitems` WHERE `id` = :id ";
 
			try {
			        $stmt = $pdo->prepare($SQL);
			        $stmt->bindValue(':id', $_SESSION["idItem"], PDO::PARAM_STR);
			        if (!$stmt->execute())
				        {
				            throw new PDOException('Erreur Execute requete');
				        }
				    else
				        {
							while ($row = $SQL->fetch(PDO::FETCH_ASSOC))
								{
									$hits=$row["hits"];
								}
							$SQL = $pdo->prepare("UPDATE `hitsparitems` SET hits=:hits, id=:id WHERE id=:id");
							$SQL->execute(array(
								':id' => $_SESSION['idItem'],
								':hits' => $hits+1,
							));
				        }
				}
 
			catch (PDOException $pdoE)
			   	{
			   		echo 'PDO Exception: <br/>'.$pdoE->getMessage();
				}
		}
?>
Ce message d'erreur pointe la ligne 19, c'est à dire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
while ($row = $SQL->fetch(PDO::FETCH_ASSOC))
.
Un var_dump de $SQL me donne SELECT * FROM `hitsparitems` WHERE `id` = :id et j'en déduis (peut-être à tort) qu'il manque la suite (le bind) mais comment ne pas tout répéter ?

Merci d'avance.