Je ne sais pas si c'est possible. Sinon, faites le moi savoir. J'ai un PDO mysql qui met à jour 3 champs.Mettre à jour une requête avec conditionnel?
$update = $mypdo->prepare("UPDATE tablename SET field1=:field1,
field2=:field2,
field3=:field3
WHERE key=:key");
Mais je veux field3
à jour que lorsque $update3 = true;
(ce qui signifie que la mise à jour field3
est contrôlée par une instruction conditionnelle)
Est-ce possible d'accomplir avec une seule requête?
je pouvais le faire avec 2 requêtes où je mets à jour field1
et field2
puis vérifiez la valeur booléenne et mise à jour field3
si nécessaire dans une requête distincte.
//run this query to update only fields 1 and 2
$update_part1 = $mypdo->prepare("UPDATE tablename SET field1=:field1,
field2=:field2
WHERE key=:key");
//if field3 should be update, run a separate query to update it separately
if ($update3){
$update_part2 = $mypdo->prepare("UPDATE tablename SET field3=:field3
WHERE key=:key");
}
Mais j'espère qu'il y a un moyen d'accomplir ceci dans une requête?
Pouvez-vous préciser, voulez-vous dire field3, plutôt que update3? Si oui, voulez-vous dire quand la nouvelle valeur que vous fournissez est vraie, ou la valeur existante? – JAL
'update3' est un booléen, et' $ update3 = true; 'est la condition qui m'aidera à décider si je veux vraiment mettre à jour' field3 =: field3' ou non. Je vais mettre à jour la question pour la rendre plus claire. – dmontain