Mysql
 sql >> Base de données >  >> RDS >> Mysql

Avec PDO, comment puis-je m'assurer qu'une instruction UPDATE a réussi ?

Cela dépend de ce que vous entendez par "réussi". Si vous voulez dire que la requête s'est exécutée sans échec, alors PDO lèvera une exception en cas d'échec ou retournera FALSE de PDOStatement::execute() , selon le mode d'erreur que vous avez défini, donc une requête "réussie" dans ce cas serait simplement celle dans laquelle la méthode d'exécution n'a pas renvoyé FALSE ou lever une exception.

Si vous voulez dire "réussi" en ce sens qu'il y avait en fait des lignes mises à jour (par opposition à seulement 0 lignes mises à jour), vous devez vérifier cela en utilisant PDOStatement::rowCount() , qui vous indiquera le nombre de lignes affectées par la requête précédente.

Avertissement :Pour les mises à jour où newvalue = oldvalue PDOStatement::rowCount() renvoie zéro. Vous pouvez utiliser

afin de désactiver ce comportement inattendu.