Bonjour,

J'ai toujours et toujours des difficultés à lever les erreurs PDO->statement. Je n'arrive jamais à trouver les raisons de l'erreur HY093 lorsque j'ai le même nombre de paramètres (9). J'ai vérifié l'orthographe et la ponctuation.

Voici mon code:
Code php : 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
function updateUser($data) {
	global $db;
 
	$data['update_date'] = TODAY_SQL;
	$set = "SET login=:login, last_name=:last_name, first_name=:first_name, mail=:mail, writer=:writer, banned=:banned, update_date:=update_date";
	if (isset($data['pw']))
		$set .= ", pw=:pw";
 
	$query = "
		UPDATE dat_users
		$set
		WHERE id=:id
	;";
	var_dump($data);
	var_dump($query);
	$result = $db->prepare($query);
	$result->execute($data);
	return $result->rowCount();
}
et l'affichage des var_dump:
array (size=9)
'id' => string '13' (length=2)
'login' => string 'test' (length=4)
'first_name' => string 'test' (length=4)
'last_name' => string 'test' (length=4)
'mail' => string 'test@test.fr' (length=12)
'pw' => string '$2y$11$bQkq8z9mYzIbyRvhuUIJuOtkcepipnxnL.Uga1NZXa7UMDJlyT97G' (length=60)
'writer' => int 1
'banned' => int 0
'update_date' => string '2018-03-17' (length=10)

UPDATE dat_users
login=:login, last_name=:last_name, first_name=:first_name, mail=:mail, writer=:writer, banned=:banned, update_date:=update_date, pw=:pw
WHERE id=:id
;' (length=176)