Comment puis-je tester pour voir si la requête suivante s'est exécutée avec succès?
$STH = $this->_db->prepare("UPDATE UserCreds SET
VerificationString=:newVerificationString, ExpiryDate=:expiryDate
WHERE UserID = :userID;");
$STH->execute($params);
Je sais que je peux utiliser lastInsertId()
lorsque j'ajoute de nouvelles lignes, mais qu'en est-il des MISES À JOUR et des SÉLECTION?
execute
renvoie true
en cas de succès et false
en cas d'échec.
Retourne TRUE en cas de succès ou FALSE en cas d'échec.
Ainsi, vous pouvez vous assurer que la requête s'est déroulée correctement, comme:
if ($STH->execute($params))
{
// success
}
else
{
// failure
}
execute () retourne vrai/faux en fonction du succès/échec de la requête:
$status = $STH->execute($params);
if ($status) {
echo 'It worked!';
} else {
echo 'It failed!';
}
Une remarque: une requête de sélection qui ne renvoie aucune ligne n'est PAS un échec. C'est un résultat parfaitement valide qui se trouve n'avoir aucun résultat.
je peux simplement compter le nombre de lignes affectées:
$stmt->execute();
$count = $stmt->rowCount();
if($count =='0'){
echo "Failed !";
}
else{
echo "Success !";
}