En utilisant PHP, j'essaie de supprimer un enregistrement, mais je veux vérifier s'il a réussi ou non. Est-ce que quelque chose est retourné d'un DELETE FROM foo where bar = 'stuff'
réussi?
Sinon, connaissez-vous un autre moyen de vérifier si un DELETE a réussi? Ou suis-je mieux de simplement m'assurer que la ligne existe avant de la supprimer? J'essaie d'éviter une autre requête si possible.
En supposant que vous utilisez mysql_query :
Pour les autres types d'instructions SQL, INSERT, UPDATE, DELETE, DROP, etc., mysql_query () renvoie TRUE en cas de succès ou FALSE en cas d'erreur.
Si vous utilisez PDO :: exec , le manuel dit ceci:
PDO :: exec () renvoie le nombre de lignes modifiées ou supprimées par l'instruction SQL que vous avez émise. Si aucune ligne n'a été affectée, PDO :: exec () renvoie 0.
Je ne veux pas répondre à votre question, mais comme cette réponse a été sélectionnée, je dois noter que mysql_query retournera TRUE
même si la requête n'a rien supprimé. Vous devriez utiliser mysql_affected_rows
pour vérifier cela.
De plus, si vous vous souciez du nombre de lignes affectées:
[Utilisez] mysql_affected_rows () pour connaître le nombre de lignes affectées par une instruction DELETE, INSERT, REPLACE ou UPDATE.
vous pouvez essayer ceci pour votre code php, placé après votre requête:
if (mysql_affected_rows() > 0) {
echo "You have successfully updated your data.<br><br>";
}
else {
echo "The data you submitted matched the current data so nothing was changed.<br><br>";
}
Pour les autres types d'instructionsSQL, INSERT
, UPDATE
, DELETE
, DROP
, etc., mysql_query()
renvoieTRUEen cas de succès ouFALSEen cas d'erreur.