Bonjour,
Comment inverser un type tinyint(1) ?
MySql blocked = tinyint(1)
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $this->sql = $this->db->prepare("UPDATE `users` SET `blocked` = NOT `blocked` WHERE username = ?"); $this->sql->bind_param('s', $username); $this->sql->execute();
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $this->sql = $this->db->prepare("UPDATE `users` SET `blocked` = IF(`blocked` = 0, 1, 0) WHERE username = ?"); $this->sql->bind_param('s', $username); $this->sql->execute();
En vain cela ne fonctionne pas.
Alors la solution que j'ai trouvé c’est de récupérè la valeur de `blocked` puis ajouter une condition en fonction de sa valeur :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 if ($row['blocked'] == 1) { $this->sql = $this->db->prepare("UPDATE `users` SET `blocked` = 0 WHERE username = ?"); } if ($row['blocked'] == 0) { $this->sql = $this->db->prepare("UPDATE `users` SET `blocked` = 1 WHERE username = ?"); } $this->sql->bind_param('s', $username); $this->sql->execute();
Je ne comprend pas pourquoi le `blocked` = NOT `blocked` ne fonctionne pas (NOT 0 = 1 , NOT 1 = 0).
Merci
Partager